第二十六节数据库连接池

自定义数据库连接池
编写连接池需要实现java.sql.DataSource接口.DataSource接口定义了两个重载的getConnection
方法:
Connection getConnection()
Connection getConnection(String username,String password)
实现DataSource接口,并实现连接池功能的步骤:
在/DataSource构造函数中批量创建与数据库的连接,并把创建的连接加入LinkedList对象中
实现getConnection方法,让getConnection方法每次调用时,从LinkedList中取出一个Connection
返回给用户
当用户使用完Connection,让Connection.close()方法是,Collection对象应保证将自己返回到
LinkedList中,而不要conn还给数据库?
取出一个添加一个
连接池DBCP使用 apache上的java连接池项目,也是tomcat使用的连接池组件
单独使用dbcp 需要3个jar包 comments-dbcp commons-pool commons-logging-1.2
BasicDataSource dataSource=BasicDataSourceFactory.createDataSource(database.properties)
封装好了各种方法
连接池C3P0的使用
C3P0是一个开源的jdbc连接池,它实现了数据源和jndi绑定,支持jdbc3规范和jdbc2的标准扩展
目前使用它的开源项目有hibernate spring
ComboPoolDataSource datasource=new ComboPooledDataSource();
datasource.setDriveClass();
datasource.setJdbcUrl();…..
jdbc进行批处理
需求:当需要向数据库发送一批/sql语句执行时,应避免向数据库一条条的发送执行,而应采用jdbc
批处理机制,以提升执行效率.
实现批处理(batch)的两种方式
第一种:使用statement对象 缺点:sql语句没有预编译 发送多条相同语句时会重复写很多
addBatch(sql) 添加sql语句
executeBatch()执行批处理命令
clearBatch()清除批处理命令
第二种:使用PreparedStatement 缺点:只能应用sql语句相同参数不同的批处理中
方法与statement相同

你可能感兴趣的:(Java基础,java学习之路)