繁体   English   中英

将DriverManager与Tomcat连接池一起使用

[英]Use DriverManager with Tomcat connection pooling

这是使用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怎么办?

似乎无法使用DriverManager进行相同操作。 实际上,这就是为什么他们在JDBC 2.0中提出了改进的DataSource类。

要在DriverManager中使用连接池,我们有3个选项

  1. 编写自己的实现。 更多细节在这里
  2. 使用类似apache-commons-dbcp的框架/库。 更多细节在这里
  3. 使用提供的DataSource容器。 示例此处 (基于tomcat容器)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM