怎么在Java中利用MySQL实现一个连接池功能

这篇文章给大家介绍怎么在Java中利用MySQL实现一个连接池功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

官方:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对连接池中的连接进行申请,使用,释放。

怎么在Java中利用MySQL实现一个连接池功能

理解:创建数据库连接池是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接池,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加的安全可靠。

手动配置连接池:

/**
*手动设置连接池
*/
publicvoiddemo1(){

//获得连接:
Connectionconn=null;
PreparedStatementpstmt=null;
ResultSetrs=null;
try{
//创建连接池:
ComboPooledDataSourcedataSource=newComboPooledDataSource();
//设置连接池的参数:
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql:///jdbctest");
dataSource.setUser("root");
dataSource.setPassword("abc");
dataSource.setMaxPoolSize(20);
dataSource.setInitialPoolSize(3);

//获得连接:
conn=dataSource.getConnection();
//编写Sql:
Stringsql="select*fromuser";
//预编译SQL:
pstmt=conn.prepareStatement(sql);
//设置参数
//执行SQL:
rs=pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getInt("uid")+""+rs.getString("username")+""+rs.getString("password")+""+rs.getString("name"));
}
}catch(Exceptione){
e.printStackTrace();
}finally{
JDBCUtils.release(rs,pstmt,conn);
}
}

使用配置文件配置连接池:

配置文件xml如下:

<?xmlversion="1.0"encoding="UTF-8"?>
<c3p0-config>

<default-config>
<propertyname="driverClass">com.mysql.jdbc.Driver</property>
<propertyname="jdbcUrl">jdbc:mysql:///jdbctest</property>
<propertyname="user">root</property>
<propertyname="password">abc</property>
<propertyname="initialPoolSize">5</property>
<propertyname="maxPoolSize">20</property>
</default-config>

</c3p0-config>

代码如下:

/**
*使用配置文件的方式
*/
publicvoiddemo2(){
Connectionconn=null;
PreparedStatementpstmt=null;
ResultSetrs=null;
try{
/*//获得连接:
ComboPooledDataSourcedataSource=newComboPooledDataSource();*/
//获得连接:
//conn=dataSource.getConnection();
conn=JDBCUtils2.getConnection();
//编写Sql:
Stringsql="select*fromuser";
//预编译SQL:
pstmt=conn.prepareStatement(sql);
//设置参数
//执行SQL:
rs=pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getInt("uid")+""+rs.getString("username")+""+rs.getString("password")+""+rs.getString("name"));
}
}catch(Exceptione){
e.printStackTrace();
}finally{
JDBCUtils2.release(rs,pstmt,conn);
}
}

关于怎么在Java中利用MySQL实现一个连接池功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

发布于 2021-03-21 22:38:14
收藏
分享
海报
0 条评论
165
上一篇:如何在Java中使用Arrays.asList方法 下一篇:如何在YII2框架中使用Query()查询生成器
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码