dbutils

简介

commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。

作用

该包封装了SQL的执行,是线程安全的。

可以实现增、删、改、查、批处理

考虑事务处理需要用Connection

该类最主要简化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。

常用方法

操作:update()带事务

  • QueryRanner qr =new QueryRanner();
  • public int update(Connection conn, String sql, Object... params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。

update()无事务

  • QueryRanner qr =new QueryRanner(连接池);
  • public int update(String sql, Object... params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。

查询:query

  • QueryRanner qr =new QueryRanner();
  • public Object query(String sql, ResultSetHandler rsh,Object... params) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭

注意

  • 该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。ResultSetHandler 接口提供了一个单独的方法:Object handle (java.sql.ResultSet rs)该方法的返回值将作为QueryRunner类的query()方法的返回值

使用

  • 创建核心类:QueryRanner qr =new QueryRanner();

  • 执行命令

    • int update = qr.update(connection,sql,params); // 执行增删改
    • T t = qr.query(connection,sql,new BeanHandler,params);
      BeanHandler:将一条数据封装的成一个对象
    • List t = qr.query(connection,sql,new BeanListHandler,params);
      BeanListHandler:将每一条数据封装成一个对象,将多个对象装到一个集合中
    • Object t = qr.query(connection,sql,new ScalerHandler,params);
      ScalarHandler:使用聚合统计最大值最小值总数..使用

项目目录三层结构

表示层(JSP)

  • 表现层也称为界面层,位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。

业务层(service)

  • 业务层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。
  • 由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。

持久层(DAD)

  • 持久层,有时候也称为是数据访问层,其功能主要是负责数据库的访问,可以访问数据库系统

通用DAO封装

概念

  • Data Access Object访问数据信息的类和接口,包括了对数据的CRUD(Create、Retrival、Update、Delete),而不包含任何业务相关的信息
  • 一个xxxDao对应xxx表的增删改查
  • 一个xxxService对应xxx实体的业务

作用

  • 为了实现功能的模块化,更有利于代码的维护和升级。
上一篇:SQL Server 动态管理视图(DMVs)


下一篇:Shell面试题