阿里云服务器如何配置多网站,自己做网站的步骤,html用什么软件打开,服装设计手稿九#xff1a;Apache-DBUtils实现CRUD操作
1 Apache-DBUtils简介
Apache-DbUtils 是 Apache 组织提供的开源 JDBC工具类库#xff0c;它是对JDBC的简单封装#xff0c;学习成本极低#xff0c;并且使用DbUtils能极大简化JDBC编码的工作量#xff0c;同时也不会影响程序的…九Apache-DBUtils实现CRUD操作
1 Apache-DBUtils简介
Apache-DbUtils 是 Apache 组织提供的开源 JDBC工具类库它是对JDBC的简单封装学习成本极低并且使用DbUtils能极大简化JDBC编码的工作量同时也不会影响程序的性能。因此DbUtils成为很多不喜欢Hibernate的公司的首选。 使用Apache-DbUtils之前需要导入它的jar包官网上会有或者找国内镜像站找也可以。
2.常用的API及案例
org.apache.commons.dbutils.QueryRunner 使用此类可以更快捷的进行删除添加修改操作因为此类封装了我们之前自己写的删除添加修改操作。
例对Customers表进行插入 Testpublic void testInsert() {Connection conn null; try {QueryRunner runner new QueryRunner();conn JDBCUtils.getConnection2();String sql insert into customers(name,email,birth)values(?,?,?);int updateCount runner.update(conn, sql, 薛之谦,xuezhiqian168.com,new Date(87654323456L));if(updateCount ! 0) {System.out.println(修改了 updateCount 条记录);}} catch (Exception e) {e.printStackTrace();}finally {JDBCUtils.closeResource(conn, null);}}org.apache.commons.dbutils.ResultSetHandler 定义了查询相关的接口它的实现类根据其接口进行了具体的操作编写ResultSetHandler 接口提供了一个单独的方法Object handle (java.sql.ResultSet .rs)接口的主要实现类 ArrayHandler把结果集中的第一行数据转成对象数组。 ArrayListHandler把结果集中的每一行数据都转成一个数组再存放到List中。 BeanHandler将结果集中的第一行数据封装到一个对应的JavaBean实例中。 BeanListHandler 将结果集中的每一行数据都封装到一个对应的JavaBean实例中存放到List里。 ColumnListHandler将结果集中某一列的数据存放到List中。 KeyedHandler(name)将结果集中的每一行数据都封装到一个Map里再把这些map再存到一个map里其key为指定的key。 MapHandler 将结果集中的第一行数据封装到一个Map里key是列名value就是对应的值。 MapListHandler 将结果集中的每一行数据都封装到一个Map里然后再存放到List ScalarHandler 查询单个值对象
例查询操作 BeanHandlerResultSetHandler接口的实现类用于封装表中的一条记录。 Testpublic void testQuery1() {Connection conn null; try {QueryRunner runner new QueryRunner();conn JDBCUtils.getConnection2();String sql select id,name,email,birth from customers where id ?;BeanHandlerCustomer handler new BeanHandler(Customer.class);Customer customer runner.query(conn, sql, handler, 23);System.out.println(customer);} catch (Exception e) {e.printStackTrace();}finally {JDBCUtils.closeResource(conn, null);} }BeanListHandlerResultSetHandler接口的实现类用于封装表中的多条记录构成的集合。 Testpublic void testQuery2() {Connection conn null; try {QueryRunner runner new QueryRunner();conn JDBCUtils.getConnection2();String sql select id,name,email,birth from customers where id ?;BeanListHandlerCustomer handler new BeanListHandler(Customer.class);ListCustomer list runner.query(conn, sql, handler, 23);list.forEach(System.out::println);//打印出多条记录} catch (Exception e) {e.printStackTrace();}finally {JDBCUtils.closeResource(conn, null);}}MapHandlerResultSetHandler接口的实现类对应表中的一条记录。 将字段及相应字段的值作为Map中的Key和Value。
Test
public void testQuery3() {Connection conn null; try {QueryRunner runner new QueryRunner();conn JDBCUtils.getConnection2();String sql select id,name,email,birth from customers where id ?;MapHandler handler new MapHandler();MapString, Object map runner.query(conn, sql, handler, 23);System.out.println(map);} catch (Exception e) {e.printStackTrace();}finally {JDBCUtils.closeResource(conn, null);}
}MapListHandlerResultSetHandler接口的实现类对应表中的多条记录。将字段及相应字段的值作为Map中的Key和Value将这些map添加到List中
Test
public void testQuery4() {Connection conn null; try {QueryRunner runner new QueryRunner();conn JDBCUtils.getConnection2();String sql select id,name,email,birth from customers where id ?;MapListHandler handler new MapListHandler();ListMapString, Object list runner.query(conn, sql, handler, 23);list.forEach(System.out::println);} catch (Exception e) {e.printStackTrace();}finally {JDBCUtils.closeResource(conn, null);}
}ScalarHandler:用于查询特殊值 Testpublic void testQuery5() {Connection conn null; try {QueryRunner runner new QueryRunner();conn JDBCUtils.getConnection2();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);} }Testpublic void testQuery6() {Connection conn null;try {QueryRunner runner new QueryRunner();conn JDBCUtils.getConnection2();String sql select max(birth) from customers;ScalarHandler handler new ScalarHandler();Date maxBirth (Date) runner.query(conn, sql, handler);System.out.println(maxBirth);} catch (Exception e) {e.printStackTrace();}finally {JDBCUtils.closeResource(conn, null);} }org.apache.commons.dbutils.DbUtils DbUtils工具类提供如关闭连接、装载JDBC驱动程序等常规操作例资源关闭
public static void closeResource1(Connection conn,Statement ps,ResultSet rs){
// try {
// DbUtils.close(conn);
// } catch (SQLException e) {
// e.printStackTrace();
// }
// try {
// DbUtils.close(ps);
// } catch (SQLException e) {
// e.printStackTrace();
// }
// try {
// DbUtils.close(rs);
// } catch (SQLException e) {
// e.printStackTrace();
// }DbUtils.closeQuietly(conn);DbUtils.closeQuietly(ps);DbUtils.closeQuietly(rs);}其中可能会出现不少的小问题请多多包含 感谢大家的支持关注评论点赞 参考资料尚硅谷_宋红康_JDBC核心技术