使用连接池来管理连接,即应用程序启动时,系统主动建立足够的数据库连接,并将这些连接组成一个连接池,每次应用程序请求数据库连接时,无需重新打开连接,只是从连接池的取出一个连接即可以使用,用完之后不必关闭连接,而是将连接直接归还给连接池。这将大大提高程序运行效率。
主要流行两种数据源,DBCP与C3P0
推荐使用C3P0,因为性能略胜一筹,Hibernate就推荐使用此连接池,因此这里只介绍C3P0的。需要导入c3p0-xxxx.jar
下面代码通过C3P0连接池获得数据库连接。
ComboPooledDataSource ds=new ComboPooledDataSource(); //新创建一个数据源
ds.setDriverClass("com.mysql.jdbc.Driver"); //设置驱动类
ds.setJdbcUrl("jdbc:mysql://localhost:3306/javaee"); //设置连接数据库的URL
ds.setUser("root"); // 设置数据库用户名
ds.setPassword("password"); //设置数据库密码
ds.setMaxPoolSize(40); // 设置保存最大连接数
ds.setMinPoolSize(2); //设置连接池保存最少连接数
ds.setInitialPoolSize(10); //设置连接池初始化连接数
ds.setMaxStatements(180); //设置最大缓存Statement数目
Connection conn=ds.getConnection(); //获得Connection