数据库连接池
来源:互联网 发布:cacti监控linux主机 编辑:程序博客网 时间:2024/06/08 12:46
基本思想:
与数据库建立连接是很费时并且很耗资源的事,为了加快数据库的相应,在内存中专门为数据库建立一个“缓冲池”,在缓冲池中提前放置一定数量的连接,当需要与数据库建立连接时,只需要在缓冲池中取出一个,使用完毕之后再放进去即可。
获得连接的过程是由连接池完成的,所以在java程序中不需要加载驱动也不需要创建连接。
第三方实现连接池需要实现javax.sql.PooledConnection接口(得到连接)和javax.sql.ConnectionPoolDataSource(数据源,获得connection)接口 。
dbcp连接池:
apache 上的一个 java 连接池项目
访问数据库的过程:
1 导入需要的jar包。
2 配置连接池。在properties配置文件中配置和数据库,连接池有关的重要参数。
driverClassName=oracle.jdbc.driver.OracleDriverurl=jdbc:oracle:thin:@localhost:1521/orclusername=studentpassword=okinitialSize=5 连接池初始化时有5个连接,第六个连接需要时(1)新建一个连接(2)等待其他连接空闲。maxActive=10 最大活动连接数。连接池中最多有10个连接maxWait=6000 需要等待连接时,最大的等待时间。
3 获取数据库连接对象(先建立连接池)
//读取配置文件InputStream in = new FileInputStream("jdbc.properties");Properties p = new Properties();p.load(in);//创建数据源DataSource ds = BasicDataSourceFactory.createDataSource(p);Connection conn = ds.getConnection();
4 获取运载sql语句的Statement对象。
PreparedStatement ps = conn.prepareStatement("select * from student");
5 执行sql语句,得到结果集。
ResultSet rs = ps.executeQuery();
6 释放连接。
具体应用:
因为,建立连接池的过程只需要执行一次,所以将它放在静态代码块中。
static { try { InputStream in = new FileInputStream("jdbc.properties"); Properties p = new Properties(); p.load(in); ds = BasicDataSourceFactory.createDataSource(p); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
获取连接:
public static Connection get_Connection() { Connection conn = null; try { conn = ds.getConnection(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; }
执行sql语句:
public static void main(String[] args) { try { Connection conn = DbUtil.get_Connection(); PreparedStatement ps = conn.prepareStatement("select * from student"); ResultSet rs = ps.executeQuery(); while(rs.next()){ int id = rs.getInt("STU_ID"); System.out.println(id); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Druid连接池:
阿里巴巴推出的数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好。
需要的jar包:druid-1.0.10.jar。
开发步骤和dbcp基本一样,都是将和数据库相关的信息配置到DataSource对象中。
Druid的配置属性见:
http://blog.csdn.net/liu414226580/article/details/36177493
创建Druid的数据源:
DataSource ds = DruidDataSourceFactory.createDataSource(p);
sql2o:
jdbc的封装框架,自动将sql语句执行后的结果转为一个java对象的集合。
开发步骤:
1.导入jar包。
2.通过sql2o得到连接
Sql2o s=new Sql2o("jdbc:oracle:thin:@localhost:1521/orcl", "student", "ok");Connection conn = s.open();//得到一个连接。
3.执行sql语句。
Query query2 = conn.createQuery("select * from student where stu_id=:sid"); query2.addParameter("sid", 1); query2.executeAndFetch(Student.class);
Sql2o中参数的传递:“:变量名”,用addParameter()函数传递参数。
查询结果转化为java对象:用executeAndFetch()函数将查询出来的记录转化为java对象的集合,在参数中指定映射的实体类型。
注意:列名和java对象的属性名要对应起来,可以在select语句中给列名其别名。
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- KYLIN 例行调度 自动BULID
- APP快速开发框架
- Yocto 学习
- 常用实体字符、媒体标签、超链接标签、图片标签
- 集合转数组的toArray()和toArray(T[] a)方法
- 数据库连接池
- android应用的一些接口方法
- const和static总结
- 开发过程中注意事项及优化(持续更新~~~)
- #129 Rehashing
- SSH中后端获取到的数据传向页面显示
- C语言基础知识
- APP二次启动问题
- BZOJ1110: [POI2007]砝码Odw