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值而发生错误。


相关文章
|
5月前
|
监控 Java 数据库连接
Java一分钟之-JDBC连接池:HikariCP, Apache DBCP, C3P0
【6月更文挑战第14天】本文介绍了Java中常用的三种JDBC连接池——HikariCP、Apache DBCP和C3P0。HikariCP以其高性能和低延迟领先,适合高并发环境;Apache DBCP稳定易配置;C3P0则提供高度可定制选项。文章讨论了各连接池的常见问题及避免策略,如配置不当、连接泄露等,并给出示例代码以供参考。选择合适的连接池并正确配置能有效提升应用性能。
134 7
|
XML Java 数据库连接
解决在mybatis中出现的org.apache.ibatis.exceptions.PersistenceException~
解决在mybatis中出现的org.apache.ibatis.exceptions.PersistenceException~
1120 0
|
Java 数据库连接 Apache
Java 中Apache-DBUtils类的使用详解
Java 中Apache-DBUtils类的使用详解
103 0
|
SQL 安全 Java
JDBC Apache—DBUtils 详解(通俗易懂)
JDBC 第六节 ApacheDBUtils详解!
377 0
|
SQL Java 数据库连接
|
SQL Java 数据库连接
Apache-DBUtils实现CRUD操作
Apache-DBUtils实现CRUD操作
Apache-DBUtils实现CRUD操作
|
SQL druid Java
【JDBC】Apache-DBUtils使用指南
1.Apache-DBUtils引出 为什么要有Apache-DBUtils? 返回resultSet的时候: 结果集合和connection时关联的,如果关闭连接就不能使用结果集 结果集不利于数据管理(只能使用一次) 使用放回信息也不方便
155 0
【JDBC】Apache-DBUtils使用指南
|
SQL Java 数据库连接
DBUtils框架的使用(上)
DBUtils框架的使用(上)
144 0
DBUtils框架的使用(上)
|
数据库
DBUtils框架的使用(下)
DBUtils框架的使用(下)
107 0
DBUtils框架的使用(下)
|
druid Apache 数据库