资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载数据库连接池地点:时间:说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与 义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时 请详细阅读内容1,直接连接数据库的情形:public class DBUtil (/*单例模式创建数据库对象*/private static DBUtil instance二null;private DBUtil()为了保证单例性,必须使用同步关键字public synchronized static DBUtil getInstance()(if(instance=null)instance=new DBUtil();return instance;连接必要的信息public String driver=com.mysql.jdbc.Driver”;public String url=jdbc:mysql:/localhost:3306/test;public String username=root”;public String password=8921498YW”;public Connection getConnection()(Connection conn=null;try (Class.forName(driver);conn二DriverManager.getConnection(url, username, password); catch (ClassNotFoundException e) (e.printStackTrace(); catch (SQLException e) (e.printStackTrace();return conn;测试连接的效率public static void main(String args) throws SQLException (long begin二System.currentTimeMillis();/开始时刻for(int i=0;i1000;i+)/获得 1000 次连接Connection conn二DBUtil.getInstance().getConnection();conn.close();long end二System.currentTimeMillis();System.out.println(直接连接数据库所需要的时间:+(end-begin);/在我的机子上1000次直接连接耗时:120312,使用DBCP连接池:/*数据库连接池:*它是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由 程序动态的对池中的连接进行申请,使用,释放* DBCP是apache组织下的一个开源项目* 需要两个 jar 包,commons-dbcp-1.2.2 和 commons-pool*这种连接池效率很高,但经常出现连接丢失现象,用的不是很多,用的多的 是 c3p0* */public class DBUtilOfDBCP (private static BasicDataSource dataSource二null;/数据源private static DataSourceConnectionFactory factory;/连接工厂private static DBUtilOfDBCP instance=null;private DBUtilOfDBCP()(dataSource=new BasicDataSource();设置jdbc相关信息dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);dataSource.setDriverClassName(driver);/连接池设置dataSource.setInitialSize(20);/初始连接数dataSource.setMaxActive(100);/最大获取连接数dataSource.setMaxIdle(30);/最大可用空闲连接数dataSource.setMinIdle(10);/最小可用空闲连接数factory二new DataSourceConnectionFactory(dataSource);为了保证单例性,必须使用同步关键字public synchronized static DBUtilOfDBCP getInstance()(if(instance=null)instance二new DBUtilOfDBCP();return instance;连接必要的信息public String driver=”com.mysql.jdbc.Driver”;public String url=jdbc:mysql:/localhost:3306/test;public String username=root”;public String password=8921498YW”;public Connection getConnection() throws SQLException(使用工厂创建连接return factory.createConnection();public static void main(String args) throws SQLException (long begin二System.currentTimeMillis();/开始时刻for(int i=0;i1000;i+)/获得 1000 次连接Connection conn二DBUtilOfDBCP.getInstance().getConnection();conn.close();long end二System.currentTimeMillis();System.out.println(DBCP 连接数据库所需要的时间:+(end-begin);/在我的机子上1000次DBCP连接耗时:1000毫秒3,使用C3P0连接池:* C3P0,比较稳定* 需要 jar 包:c3p0-0.9.1public class DBUtilOfC3P0 (private static ComboPooledDataSource dataSource;private static DBUtilOfC3P0 instance二null;private DBUtilOfC3P0()(dataSource=new ComboPooledDataSource();设置jdbc连接信息dataSource.setUser(username);dataSource.setPassword(password);dataSource.setJdbcUrl(url);try (dataSource.setDriverClass(driver); catch (PropertyVetoException e) (e.printStackTrace();设置连接池dataSource.setInitialPoolSize(30);dataSource.setMaxPoolSize(100);dataSource.setMinPoolSize(10);为了保证单例性,必须使用同步关键字public synchronized static DBUtilOfC3P0 getInstance()(if(instance=null)instance二new DBUtilOfC3P0();return instance;连接必要的信息public String driver=”com.mysql.jdbc.Driver”;public String url=jdbc:mysql:/localhost:3306/test;public String username=root”;public String password=8921498YW”;public Connection getConnection() throws SQLException(使用工厂创建连接return dataSource.getConnection();public static void main(String args) throws SQLException ( long begin二System.currentTimeMillis();/开始时刻for(int i=0;i1000;i+)/获得 1000 次连接Connection conn二DBUtilOfC3P0.getInstance().getConnection();conn.close();long end二System.currentTimeMillis();System.out.println(C3P0 连接数据库所需要的时间:+(end-begin);/在我的机子上1000次C3P0连接耗时:1813毫秒
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号