数据库连接池配置方法
在Tomcat中配置数据库连接池有两种方法:
1、 配置全局数据库连接池
(1)、打开Tomcat的安装目录\conf\server.xml文件,并从中找到<GlobalNamingResources>元素,然后加入一个子元素<Resource>,这个子元素的配置代码如下:
<Resource name="myjdbc"auth="Container"
type="javax.sql.DataSource"driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1522:oracle"username="scott"
password="814229"maxActive="200" maxIdle="50" maxWait="3000" />
上述代码解析:红色代码的name可随便设置,但必须与WebTest.xml(配置的项目)中的name和gloable属性相同!driverClassName,url大家都熟悉在这就不做讲述了。maxActive最大连接数,maxIdle空闲连接数,maxWait暂时无法连接数据库的等待时间。
(2)、在Tomcat安装目录\conf\Catalina\localhost中建立一个WebTest.xml文件(文件名要和path属性值一致,建议用项目名字,如下代码示例蓝色部分),然后输入如下内容:
<Contextpath="/WebTest" docBase="WebTest"debug="0">
<ResourceLinkname="myjdbc" global="myjdbc"type="javax.sql.DataSource" />
</Context>
2、 配置局部数据连接池
在Tomcat安装目录\conf\Catalina\localhost中建立一个WebTest.xml文件,然后输入如下内容:
<Context path="/WebTest" docBase="WebTest"debug="0">
<Resource name="myjdbc"auth="Container"
type="javax.sql.DataSource"driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1522:oracle"username="scott"
password="814229"maxActive="200" maxIdle="50" maxWait="3000" />
</Context>
配置完数据库连接池后,可以在Servlet的service方法或其他处理HTTP请求的方法中使用如下代码来连接数据库:
try {
javax.naming.Context ctx = new javax.naming.InitialContext();
//获得DataSource对象
javax.sql.DataSource ds =(javax.sql.DataSource)ctx.lookup("java:/comp/env/myjdbc");
//获得Connection对象
try {
Connection conn =ds.getConnection();
Statement stmt =conn.createStatement();
String sql = "select * from manager";
ResultSet rs =stmt.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
System.out.println(rs.getString(4));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
*注意:
①、url="jdbc:oracle:thin:@127.0.0.1:1522:oracle"中@后边的地址写127.0.0.1也可以写localhost。
②、浏览器的地址栏中输入http://127.0.0.1:8080/WebTest/connectionpool也可以输入http://localhost:8080/WebTest/connectionpool可以不一一对应。其中connectionpool为servlet的URL-Pattern的值