数据库连接池
来源:互联网 发布:微信网页授权 多域名 编辑:程序博客网 时间:2024/06/08 14:41
用前须知:
什么是数据库连接池?
当服务器启动时初始化一些链接放在连接池中,等待客户端调用。
客户端请求链接,则首先判断连接池中是否有可用的链接,如果有,则返回,
如果连接池中没有可用链接,则判断当前连接数是否超过了最大可用链接,
如果没有超过,则创建新的链接返回,如果超过了,则抛出无可用链接的异常,
最后,当客户端使用完链接之后,再将链接放回的连接池中,从而实现链接的重用。
数据源的作用:
1.获得连接的工程
2.DriverManager工具替代
工厂:
package com.bt.factory;import java.sql.Connection;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;public class CF { //给属性赋值 private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String URL = "jdbc:mysql:///bt1707"; private static final String USER = "root"; private static final String PWD = "password"; //构造BasicDataSource对象 private static BasicDataSource ds = new BasicDataSource(); static{ ds.setDriverClassName(DRIVER); ds.setUrl(URL); ds.setUsername(USER); ds.setPassword(PWD); ds.setMaxActive(10); ds.setMaxWait(3000); } //对外提供数据源(javax.sql.DataSource-->DBCP--->COMMONS-DBCP) public static DataSource getDs(){ return ds; } //元数据:MetaData ResultSetMetaData public static Connection getConnection(){ try { return ds.getConnection(); } catch (Exception e) { e.printStackTrace(); return null; } }}
实现类(自己写接口去)
package com.etoak.dao;import java.util.List;import java.util.Map;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanHandler;import org.apache.commons.dbutils.handlers.BeanListHandler;import org.apache.commons.dbutils.handlers.MapHandler;import com.bt.factory.CF;import com.bt.po.Book;public class DaoImpl implements DaoIf { QueryRunner qr = new QueryRunner(CF.getDs()); @Override public int getCount() { String sql = "select count(*) from book"; try { Map map = qr.query(sql, new MapHandler()); return Integer.parseInt(map.get("count(*)")+""); } catch (Exception e) { e.printStackTrace(); return 0; } } @Override public Book getById(Integer id) { try { String sql = "select * from book where id = ?"; Book book = qr.query(sql, new BeanHandler(Book.class),id); return book; } catch (Exception e) { e.printStackTrace(); return null; } } @Override public List<Book> getAll() { try { String sql = "select * from book"; List<Book> data = qr.query(sql, new BeanListHandler(Book.class)); return data; } catch (Exception e) { e.printStackTrace(); return null; } }}
阅读全文
0 0
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- SAD和SATD的区别与几个名词解释
- [JSOI2008]星球大战starwar
- Dynamic CRM 2016使用WEB API FetchXml查询特定记录(js)
- 使用jQuery.print.js打印
- 美图2018届校园招聘编程题(AC)
- 数据库连接池
- HDU 4474 (Yet Another Multiple Problem)同余模定理·
- 提取caffe和ncnn的权重
- Jquery中的一些方法总结
- loadrunner Lr_类函数之llr_debug_message()
- 数据挖掘学习入门建议
- 十月12号
- 拆箱与装箱
- 串口区分