数据库连接池,DBUtil的模板,Druid使用(重点)

一、DBUtil模板

public class DBUtilTest {

    public static Connection connection;
public static final String URL = "jdbc:mysql:///demo";
public static final String USERNAME = "";
public static final String PASSWORD = ""; static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} public static void testQuery() throws SQLException {
connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
String sql = "select * from emp where id = ?";
QueryRunner runner = new QueryRunner();
Emp query = runner.query(connection, sql, new BeanHandler<Emp>(Emp.class), 1);
System.out.println(query);
} public static void testQuery2() throws SQLException {
connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
String sql = "select * from emp";
QueryRunner runner = new QueryRunner();
List<Emp> query = runner.query(connection, sql, new BeanListHandler<Emp>(Emp.class));
query.forEach((x)->{
System.out.println(x);
});
} public static void insert() throws SQLException {
connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
String sql = "insert emp values(null,?,?)";
QueryRunner runner = new QueryRunner();
runner.update(connection,sql,1,2);
}
public static void main(String[] args) throws SQLException {
testQuery2();
}
}

二、数据库连接池

数据库连接池是为了减少频繁开关连接的时间,分析应该具备几个属性

1.初始大小

2.每次扩容大小

3.连接池最大个数

4.空闲连接死亡时间

各种数据库连接池

  • DBCP
  • C3P0
  • Druid
  • hikariCP
2.1.DBCP模板
public static void main(String[] args) throws SQLException {
// 数据库连接池资源
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
basicDataSource.setUrl("jdbc:mysql:///demo");
basicDataSource.setUsername("");
basicDataSource.setPassword(""); Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet rs = null; connection = basicDataSource.getConnection();
String sql = "select * from emp";
preparedStatement = connection.prepareStatement(sql);
rs = preparedStatement.executeQuery();
while (rs.next()){
System.out.println(rs.getInt(1)+
rs.getString(2)+
rs.getString(3));
}
connection.close();
}
2.2.C3P0
public static void main(String[] args) throws PropertyVetoException, SQLException {
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "com.mysql.cj.jdbc.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:mysql://120.78.206.78:3306/demo" );
cpds.setUser("root");
cpds.setPassword("Root123..");
cpds.setMaxStatements( 180 );
Connection conn = cpds.getConnection();
System.out.println(conn);
conn.close();
}

第二种参照官网,进行xml配置

2.3.druid

druid是性能最好的数据库连接池

dbcp和c3p0区别,c3p0会自动回收不使用的连接

最新文章

  1. IOS第14天(2, Modal控制)
  2. Python入门笔记(25):Python面向对象(2)
  3. Linux命令(20)查看当前网速
  4. PHP set_exception_handler 设置异常处理函数
  5. 利用动画+div的前后切换实现轮播
  6. javascript变量提升
  7. 路径问题以及cookie详解
  8. 如何透彻分析Java开发人员
  9. promise在angular中的基本使用
  10. 简易远程消息交换协议SRMP
  11. Hibernate入门(三)
  12. C语言的结构和联合,以及PHP是怎么实现弱类型的
  13. KafkaConsumer 长时间地在poll(long )方法中阻塞
  14. oracle体系结构理解
  15. 哪个中年IT男不是一边面对危机,一边咬牙硬抗
  16. L237
  17. openssh-server
  18. HDOJ5883(欧拉路)
  19. PHP连接Redis操作函数
  20. java——虚拟机、线程

热门文章

  1. 欧姆龙NX1P 输送马达功能块
  2. 【单元测试框架unittest】
  3. 如何保持人际关系zz
  4. 防火墙firewalld报错:ERROR: Exception DBusException: org.freedesktop.DBus.Error.AccessDenied:...
  5. 【AtCoder】diverta 2019 Programming Contest 2
  6. Java基础---Java常量
  7. C++:链表(初识链表)
  8. Excel时间序列函数
  9. python可变类型与不可变类型
  10. 订单服务,使用feign调用服务