"本文介绍了如何在Tomcat服务器上配置全局数据源,步骤包括修改context.xml文件、创建工程、复制WEB-INF文件、更新web.xml以及引入数据库驱动。"
在Tomcat服务器中配置数据源是一项重要的任务,它允许应用与数据库进行安全且高效的交互。以下是配置全局数据源的具体步骤:
1. 首先,打开Tomcat安装目录下的`conf`文件夹,找到并编辑`context.xml`文件。在这个文件中,你需要在`<Context>`标签内部添加一个数据源的配置。配置示例如下:
```xml
<Context>
<!-- 其他配置 -->
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="sa"
password="123456"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=mydb"/>
<!-- 其他配置 -->
</Context>
```
这里的配置项含义如下:
- `name`:数据源的唯一标识,通常以"jdbc/"开头,如"jdbc/TestDB"。
- `auth`:认证方式,"Container"表示由容器(Tomcat)负责认证。
- `type`:数据源类型,这里是`javax.sql.DataSource`。
- `maxActive`、`maxIdle`、`maxWait`:分别代表最大活动连接数、最大空闲连接数和等待超时时间。
- `username`、`password`:数据库的登录用户名和密码。
- `driverClassName`:数据库驱动类名,这里是针对Microsoft SQL Server的。
- `url`:数据库的JDBC连接URL,包括主机名、端口和数据库名。
2. 创建一个新的Web工程,例如名为`SQLtest`,并将其放在Tomcat的`webapps`目录下。
3. 将`ROOT`目录下的`WEB-INF`整个复制到`SQLtest`目录中。
4. 接下来,编辑`SQLtest/WEB-INF/web.xml`,在`<web-app>`标签内添加一个`<resource-ref>`标签,用来引用在`context.xml`中定义的数据源:
```xml
<web-app>
<!-- 其他配置 -->
<resource-ref>
<description>DBConnection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- 其他配置 -->
</web-app>
确保这里的`<res-ref-name>`与`context.xml`中的`name`属性一致。
5. 在`SQLtest/WEB-INF`目录下创建一个`lib`文件夹,然后将对应的数据库驱动JAR文件放入其中。对于Microsoft SQL Server 2005,只需要`sqlserver.jar`;对于其他版本,可能需要`msbase.jar`、`mssqlserver.jar`和`msutil.jar`。
完成以上步骤后,Tomcat就能识别并使用配置好的数据源了。应用可以通过JNDI查找(Java Naming and Directory Interface)来获取这个数据源,从而实现与数据库的连接。例如,以下Java代码展示了如何在Servlet或任何Java EE组件中获取数据源:
```java
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/TestDB");
Connection conn = ds.getConnection();
// 使用连接执行SQL操作...
conn.close();
```
通过这种方式,你的应用程序可以方便地与数据库进行交互,而无需在代码中硬编码数据库连接信息,提高了安全性与可维护性。