【JavaWeb】数据库连接池和JDBC封装工具DBUtils

您所在的位置:网站首页 jdbc连接池工具类 【JavaWeb】数据库连接池和JDBC封装工具DBUtils

【JavaWeb】数据库连接池和JDBC封装工具DBUtils

#【JavaWeb】数据库连接池和JDBC封装工具DBUtils| 来源: 网络整理| 查看: 265

目录

一、Druid开源连接池的使用

1.Druid的使用

2.使用配置方式完成连接池的使用

二、C3P0开源连接池的使用

1.C3P0的连接池的概述

2.C3P0的连接池的使用

2.1手动设置参数的方式

2.2采用配置文件的方式:

三、DBUtils的概述

1.什么是DBUtils

2.为什么要学习DBUtils

3.DBUtils的API

3.1QueryRunner对象:核心运行类

3.2DbUtils

4.DBUtils的添加操作

5.DBUtils的修改操作

6.DBUtils的删除操作

7.DBUtils的使用之查询的操作

7.1查询一条记录

7.2查询多条记录:

8.DBUtils的使用之ResultSetHandler的实现类

1.ArrayHandler和ArrayListHandler

2.BeanHandler和BeanListHandler

3.MapHandler和MapListHandler

4.ColumnListHandler、ScalarHandler

一、Druid开源连接池的使用

Druid阿里旗下开源连接池产品,使用非常简单,可以与Spring框架进行快速整合。

1.Druid的使用 @Test /** * Druid的使用: * * 手动设置参数的方式 */ public void demo1(){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ // 使用连接池: DruidDataSource dataSource = new DruidDataSource(); // 手动设置数据库连接的参数: dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql:///web_test4"); dataSource.setUsername("root"); dataSource.setPassword("abc"); // 获得连接: // conn = JDBCUtils.getConnection(); conn = dataSource.getConnection(); // 编写SQL: String sql = "select * from account"; // 预编译SQL: pstmt = conn.prepareStatement(sql); // 设置参数: // 执行SQL: rs = pstmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("id")+" "+rs.getString("name")+" "+rs.getDouble("money")); } }catch(Exception e){ e.printStackTrace(); }finally{ JDBCUtils.release(rs, pstmt, conn); } } 2.使用配置方式完成连接池的使用 @Test /** * Druid的使用: * * 配置方式设置参数 * Druid配置方式可以使用属性文件配置的。 * * 文件名称没有规定但是属性文件中的key要一定的。 */ public void demo2(){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ // 使用连接池: // 从属性文件中获取: Properties properties = new Properties(); properties.load(new FileInputStream("src/druid.properties")); DataSource dataSource = DruidDataSourceFactory.createDataSource(properties); // 获得连接: // conn = JDBCUtils.getConnection(); conn = dataSource.getConnection(); // 编写SQL: String sql = "select * from account"; // 预编译SQL: pstmt = conn.prepareStatement(sql); // 设置参数: // 执行SQL: rs = pstmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("id")+" "+rs.getString("name")+" "+rs.getDouble("money")); } }catch(Exception e){ e.printStackTrace(); }finally{ JDBCUtils.release(rs, pstmt, conn); } } 二、C3P0开源连接池的使用 1.C3P0的连接池的概述

2.C3P0的连接池的使用 2.1手动设置参数的方式 @Test /** * 手动设置参数的方式: */ public void demo1(){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ // 获得连接:从连接池中获取: // 创建连接池: ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 设置连接参数: dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql:///web_test4"); dataSource.setUser("root"); dataSource.setPassword("abc"); // 从连接池中获得连接: conn = dataSource.getConnection(); // 编写SQL: String sql = "select * from account"; // 预编译SQL: pstmt = conn.prepareStatement(sql); // 执行SQL: rs = pstmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("id")+" "+rs.getString("name")+" "+rs.getDouble("money")); } }catch(Exception e){ e.printStackTrace(); }finally{ JDBCUtils.release(rs, pstmt, conn); } }

2.2采用配置文件的方式:

2.2.1配置连接池:

 

2.2.2使用连接池

@Test /** * 采用配置文件的方式: */ public void demo2(){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ // 获得连接:从连接池中获取: // 创建连接池://创建连接池默认去类路径下查找c3p0-config.xml ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 从连接池中获得连接: conn = dataSource.getConnection(); // 编写SQL: String sql = "select * from account"; // 预编译SQL: pstmt = conn.prepareStatement(sql); // 执行SQL: rs = pstmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("id")+" "+rs.getString("name")+" "+rs.getDouble("money")); } }catch(Exception e){ e.printStackTrace(); }finally{ JDBCUtils.release(rs, pstmt, conn); } }

三、DBUtils的概述 1.什么是DBUtils

2.为什么要学习DBUtils

因为JDBC手写比较麻烦,而且有非常多的代码是类似的。比如获得连接,预编译SQL,释放资源等..那么可以将这些代码抽取出来放到工具类中。将类似的代码进行抽取。大大简化JDBC的编程。

 

3.DBUtils的API 3.1QueryRunner对象:核心运行类

构造方法:

 

 方法:

 

 在一般情况下如果执行CRUD的操作:

构造: QueryRunner(DataSource ds); 方法: int update(String sql,Object… args); T query(String sql,ResultSetHandler rsh,Object… args);

如果有事务管理的话使用另一套完成CRUD的操作:

构造: QueryRunner(); 方法: int update(Connection conn,String sql,Object… args); T query(Connection conn,String sql,ResultSetHandler rsh,Object… args);

方法:

 

3.2DbUtils

 

 

4.DBUtils的添加操作 @Test /** * 添加操作 */ public void demo1() throws SQLException{ // 创建核心类:QueryRunner: QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource()); queryRunner.update("insert into account values (null,?,?)", "ddd",10000); }

5.DBUtils的修改操作 @Test /** * 修改操作 */ public void demo2() throws SQLException{ // 创建核心类: QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource()); queryRunner.update("update account set name=?,money=? where id =?", "eee",20000,4); }

6.DBUtils的删除操作 @Test /** * 删除操作 */ public void demo3() throws SQLException{ // 创建核心类: QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource()); queryRunner.update("delete from account where id = ?", 3); }

7.DBUtils的使用之查询的操作 7.1查询一条记录

创建一个对象:Account

 

查询代码实现:

 

7.2查询多条记录:

 

8.DBUtils的使用之ResultSetHandler的实现类 1.ArrayHandler和ArrayListHandler

ArrayHandler:

将一条记录封装到一个数组当中。这个数组应该是Object[]。

ArrayListHandler:

将多条记录封装到一个装有Object[]的List集合中。

 

2.BeanHandler和BeanListHandler

BeanHandler:

 

BeanListHandler:

将多条记录封装到一个装有JavaBean的List集合中。

 

3.MapHandler和MapListHandler

MapHandler:

将一条记录封装到一个Map集合中,Map的key是列名,Map的value就是表中列的记录值。

MapListHandler:

将多条记录封装到一个装有Map的List集合中。

 

4.ColumnListHandler、ScalarHandler

ColumnListHandler:

将数据中的某列封装到List集合中。

ScalarHandler:

将单个值封装。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3