mysql连接池代码工具示例(scala):
import java.sql.{Connection,PreparedStatement,ResultSet} import org.apache.commons.dbcp.BasicDataSource object ConnectPoolUtil{ private var bs:BasicDataSource = null /** *创建数据源 */ def getDataSource():BasicDataSource = { if (bs = null){ bs = new BasicDataSource() bs.setDriverClassName("com.mysql.jdbc.Driver") bs.setUrl("jdbc:mysql://localhost:3306/${db_name}") bs.setUsername("root") bs.setPassword("123456") bs.setMaxActive(200) //设置最大的并发数 bs.setInitialSize(30) //数据库初始化时,创建的连接个数 bs.setMinIdle(50) //最小空闲连接数 bs.setMaxIdle(200) //数据库最大连接数 bs.setMaxWait(1000) bs.setMinEvictableIdleTimeMillis(60 * 1000) //空闲连接60秒之后释放 bs.setTimeBetweenEvictionRunsMills(5 * 60 * 1000) //5分钟检测一次是否有进程死掉 } bs } /** *释放数据源 */ def shutDownDataSource(){ if (bs != null) { bs.close() } } /** *获取数据库的连接 */ def getConnection():Connection = { val conn :Connection = null try{ if (bs != null){ conn = bs.getConnection() }else{ conn = getDataSource().getConnection() } }catch { case e:Exception => println(e.getMessage) } conn } /** *关闭连接 */ def closeConn(rs:ResultSet,ps:PreparedStatement,conn:Connection){ if (rs != null) rs.close() if (ps != null) ps.close() if (conn != null) conn.close() } }