DBUitls是对jdbc简单的封装;
核心运行类:QueryRunner
构造方法:
  QueryRunner() //没有自动传入连接池,用于事务管理
  QueryRunner(DataSource ds)
方法:(增删改用update,查用query)
  (sql语句中的参数用?作为占位符,Object...params为参数列表)
  int update(String sql,Object... params)
  int update(Connection conn,String sql,Object... params) //用于事务管理


  T query(String sql,ResultSetHandler<T> rsh,Object...params)
  T query(Connection conn,String sql,ResultSetHandler<T> rsh,Object...params) //用于事务管理


  int[] batch(String sql,Object[][]params) //批处理
  int[] batch(Connection conn,String sql,Object[][]params)
事务相关类DBUtils
  方法:
    static void commitAndCloseQuietly(Connection conn)
    static void rollbackAndCloseQuietly(Connection conn)
  注意:在使用DBUtils中的事务的时候,得到Connection之后先setAutocommmit()。

ResultSetHandler:(QueryRunner.query中接受结果集的类)

使用自定义类接收数据:
  查询一条记录封装到自定义bean中:

 1 User user = qr.query("select * from user where id = ?", 1, new ResultSetHandler<User>() {
 2     @Override
 3     public User handle(ResultSet rs) throws SQLException {
 4     User user = new User();
 5         if (rs.next()) {
 6             user.setId(rs.getInt("id"));
 7             user.setUsername(rs.getString("username"));
 8         }
 9         return user;
10     }
11 });

  查询多条记录封装到自定义bean中:

 1 List list = qr.query("select * from user",new ResultSetHandler<List<User>>() {
 2     @Override
 3     public List handle(ResultSet rs) throws SQLException {
 4        List<User> list = new ArrayList<User>();
 5        while(rs.next()) {
 6             User user = new User();
 7             user.setId(rs.getInt("id"));
 8             user.setUsername(rs.getString("username"));
 9             list.add(user);
10         }
11     return list;
12     }
13 });            

ResultSetHandler的实现类:
  ArrayHandler&&ArrayListHandler:将一条记录封装到一个Object数组中&&将多条记录封装到一个Object数组的集合中
  BeanHandler&&BeanListHandler:将一条记录封装到一个javabean中&&将多条记录封装到一个javabean的list集合中
  MapHandler&&MapListHandler:将一条记录封装到一个Map集合中&&将多条记录封装到一个装有Map的List集合中
  ColumnListHandler:将数据中的某一列封装到list集合中
  ScalarHandler:将单值封装

 

posted on 2018-08-12 21:01  zeronexyz  阅读(176)  评论(0编辑  收藏  举报