本文共 3404 字,大约阅读时间需要 11 分钟。
Apache-DBUtils是Apache组织提供的一个开源JDBC工具库,旨在简化数据库操作,提供标准化的数据访问接口。它支持CRUD(Create, Read, Update, Delete)操作,并通过多种Handler实现对ResultSet的处理。
QueryRunner 是DBUtils中的核心类,用于执行数据库操作。以下是通过QueryRunner实现插入操作的示例:
public void testInsert() throws Exception { Connection conn = JDBCUtils.getConnection1(); QueryRunner runner = new QueryRunner(); String sql = "insert into customers(name,email,birth) values(?,?,?)"; runner.update(conn, sql, "古德", "gude@126.com", "1987-08-08");} DBUtils提供了多种ResultSetHandler,用于将数据库查询结果转换为Java对象或集合。以下是常见Handler的使用示例:
public void testInsert1() { Connection conn = null; try { conn = JDBCUtils.getConnection1(); QueryRunner runner = new QueryRunner(); String sql = "select id,name,email,birth from customers where id = ?"; BeanHandler handle = new BeanHandler (Customer.class); Customer cust = runner.query(conn, sql, handle, 20); System.out.println(cust); } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.closeResource(conn, null); }} public void testInsert2() { Connection conn = null; try { conn = JDBCUtils.getConnection1(); QueryRunner runner = new QueryRunner(); String sql = "select id,name,email,birth from customers where id < ?"; BeanListHandler handle = new BeanListHandler (Customer.class); List list = runner.query(conn, sql, handle, 20); list.forEach(System.out::println); } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.closeResource(conn, null); }} public void testInsert3() { Connection conn = null; try { conn = JDBCUtils.getConnection1(); QueryRunner runner = new QueryRunner(); String sql = "select id,name,email,birth from customers where id = ?"; MapHandler handler = new MapHandler(); Map map = runner.query(conn, sql, handler, 20); System.out.println(map); } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.closeResource(conn, null); }} public void testInsert4() { Connection conn = null; try { conn = JDBCUtils.getConnection1(); QueryRunner runner = new QueryRunner(); String sql = "select id,name,email,birth from customers where id < ?"; MapListHandler handler = new MapListHandler(); List DBUtils的ScalarHandler专门用于处理只返回一个标量值的查询,常用于统计查询或获取单值结果。例如:
public void testquery() { Connection conn = null; try { conn = JDBCUtils.getConnection1(); QueryRunner runner = new QueryRunner(); String sql = "select count(*) from customers"; ScalarHandler handler = new ScalarHandler(); Long count = (Long) runner.query(conn, sql, handler); System.out.println(count); } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.closeResource(conn, null); }} 通过这些示例可以看出,Apache-DBUtils通过提供统一的API接口,显著简化了数据库操作,降低了代码冗余,提高了开发效率。
转载地址:http://kbwqz.baihongyu.com/