怎么在Java中利用MySQL实现一个连接池功能
作者
这篇文章给大家介绍怎么在Java中利用MySQL实现一个连接池功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
官方:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对连接池中的连接进行申请,使用,释放。
理解:创建数据库连接池是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接池,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加的安全可靠。
手动配置连接池:
/** *手动设置连接池 */ 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实现一个连接池功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
目录
推荐阅读
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~