将DriverManager与Tomcat连接池一起使用

时间:2013-12-04 10:16:21

标签: java tomcat jdbc

这是使用Tomcat的内置池机制的代码片段。

PoolProperties p = new PoolProperties();
p.setUrl("jdbc:mysql://localhost:3306/mysql");
p.setDriverClassName("com.mysql.jdbc.Driver");
p.setUsername("root");
p.setPassword("password");
DataSource datasource = new DataSource();
datasource.setPoolProperties(p);
Connection con = null;
try {
   con = datasource.getConnection();
   Statement st = con.createStatement();
   ResultSet rs = st.executeQuery("select * from user");
   int cnt = 1;
   while (rs.next()) {
       System.out.println((cnt++)+". Host:" +rs.getString("Host")+
       " User:"+rs.getString("User")+" Password:"+rs.getString("Password"));
   }
   rs.close();
   st.close();
} finally {
   if (con!=null) try {con.close();}catch (Exception ignore) {}
}

如果不使用DataSource而是使用DriverManager,我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

似乎不可能对DriverManager做同样的事情。 实际上,这就是他们在JDBC 2.0中提出改进的DataSource类的原因。

要使用与DriverManager的连接池,我们有3个选项

  1. 编写自己的实现。更多详情here
  2. 使用apache-commons-dbcp之类的框架/库。更多详情here
  3. 使用提供的DataSource容器。示例here(基于tomcat容器)。