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()
}
}