MySQL连接池听说没?我来告诉你如何配置

MySQL连接池听说没?我来告诉你如何配置

一、为什么使用数据源和连接池

应用程序需要频繁的连接数据库的,如果每次操作都连接数据库,然后关闭,这样做性能一定会受限。所以,一定要想办法复用数据库的连接。使用连接池可以达到复用数据库连接的目的。

二、连接池概念

连接池是用来管理Connection 对象的,连接池可以从数据源中获得连接,连接池中可以有若干个数据库连接对象,这些连接对象可以被重用。应用程序需要连接时,就向连接池申请,如果连接池中有空闲的连接,就会分配给应用程序,如果没有,可能就需要在等待队列里等待。

三、MySQL连接池配置

1、把数据库驱动包 以及JSTL的jar包 copy 到 %CATALINA_HOME%lib 下。

2、修改 %CATALINA_HOME%confserver.xml 文件,在 <Host> 节点下添加:

<!-- appName 为项目名 docBase一定要准确 &符号要换成&--!>

<Context path="/appName" docBase="appNameWebRoot" auth="Container">

<Resource name="jdbc/MySQLDS" scope="Shareable"

type="javax.sql.DataSource"

url="jdbc:mysql://localhost:3306/kqxt?useUnicode=true&characterEncoding=utf-8"

driverClassName="com.mysql.jdbc.Driver"

username="root" password="root"

maxWait="3000" maxIdle="100" maxActive="10" />

</Context>

(或者在 %appName%META-INF 下建立 context.xml,内容为上面的代码。)

3、修改 web.xml,在 <web-app> 节点下添加:

<resource-ref>

<description>Mysql Datasource example</description>

<res-ref-name>MySQLDS</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

(这一步不添加也没问题。)

4、在代码中获取数据库连接:

import java.sql.Connection;

// 注意导入的包名

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.sql.DataSource;

public class DBUtil {

public static Connection getConnection() throws Exception {

Context context = new InitialContext();

// 获取数据源

DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/MySQLDS");

// 获取数据库连接

Connection conn = ds.getConnection();

if (conn != null && !conn.isClosed()) {

return conn;

} else {

return null;

}

}

}

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: