DBUtils注意问题

简介: DBUtils注意问题

在使用DBUtils之前,应该注意一些问题:

  1. DBUtils是JDBC的简单封装,可以和JDBC混合使用。
  2. DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean的规范,其次Bean的getter与setter方法的名字与结果集的列名一一对应,而不要求JavaBean的私有成员与表结果集列名一一对应。
  3. DBUtils可以将结果集封装为各种类型,主要有:Bean/List<Bean>,Map/List<Map>/Map<Map>数组/List<数组>,列/List<列>,这些类型。 对于Map<Map>的类型使用KeyedHandler作为结果集处理器,内层的Map是“列名-值"对,外层的Map是“主键-内层Map的引用”,但此处的主键不一定就是数据库的主键,可以随意指定,比如:
    ResultSetHandler h = new KeyedHandler("id");
    Map found = (Map) queryRunner.query("select id, name, age from person", h);
    Map jane = (Map) found.get(new Long(1)); // jane's id is 1
    String janesName = (String) jane.get("name");
    Integer janesAge = (Integer) jane.get("age");
  4. DBUtils执行插入操作的时候,无法返回自增主键,这是一个很严重的问题,当然不能怪DBUtils,可以通过变通的方法来实现,比如在MySQL中,执行完了一个插入SQL后,接着执行SELECT LAST_INSERT_ID()语句,就可以获取到自增主键。
  5. DBUtils的性能和JDBC性能是一样,测试过程中没发现性能损失,拥有了很高性能的同时,而不失JDBC的灵活性。
  6. 对于JavaBean的成员类型定义,有一条原则那就是:尽可能使用包装类型,而不要使用基本类型
    //错误
    int a1 = (Integer) null;
    boolean x1 = (Boolean)null;
    //正确
    Integer a2 = (Integer) null;
    Boolean x2 = (Boolean)null;
    实际上就是为了保证在查询结果为null的时候,也不会因为给基本类型赋null值而发生错误。


目录
打赏
0
0
0
0
71
分享
相关文章
解决在mybatis中出现的org.apache.ibatis.exceptions.PersistenceException~
解决在mybatis中出现的org.apache.ibatis.exceptions.PersistenceException~
1267 0
Java 中Apache-DBUtils类的使用详解
Java 中Apache-DBUtils类的使用详解
116 0
JDBC Apache—DBUtils 详解(通俗易懂)
JDBC 第六节 ApacheDBUtils详解!
408 0
【JDBC】Apache-DBUtils使用指南
1.Apache-DBUtils引出 为什么要有Apache-DBUtils? 返回resultSet的时候: 结果集合和connection时关联的,如果关闭连接就不能使用结果集 结果集不利于数据管理(只能使用一次) 使用放回信息也不方便
181 0
【JDBC】Apache-DBUtils使用指南
Apache Commons DbUtils工具使用
Apache Commons DbUtils工具使用
158 0
Apache Commons DbUtils工具使用
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等