Tomcat连接池使用

为什么要用数据库连接池?

在普通开发中频繁的建立,关闭数据库连接,会导致系统性能降低。所以通过连接的复用,建立一套数据库连接池来管理,使得一个数据库连接可以高效的复用,避免了数据库连接的频繁操作。

具体配置

在容器项目配置 Context 加上下面 xml

// 需要在 Context 里面加上 reloadable="true" 的属性
<
Resource name="jdbc/t1" // 名称,自定义,和 web.xml 中的名字对应 auth="Container" // 授权 type="javax.sql.DataSource" maxActive="100" // 最大连接数 maxIdle="30" // 在没有用户使用的时候,数据库的最小维持连接数 maxWait="10000" // 每个用户最大的等待时间 username="root" // 数据库账号 password="123456" // 数据库密码 driverClassName="com.mysql.jdbc.Driver" // 数据库驱动包 url="jdbc:mysql://localhost:3306/t1" // 数据库 url />

在项目 web.xml 加上下面这段 xml

<resource-ref>
      <res-ref-name>jdbc/t1</res-ref-name> // 对应容器配置里的 name 属性
      <res-auth>Container</res-auth>
</resource-ref>

在项目中使用连接池

Context ctx = new InitialContext();
DataSource ds  = (DataSource) ctx.lookup("java:comp/env/jdbc/t1"); //就是在配置文件中 name 属性的名称
Connection connection = ds.getConnection(); // 从连接池中获取数据库连接

connection.close(); //这个是将连接放回连接池, 而不是关闭数据库连接