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


相关文章
|
8月前
|
Java 数据库连接 Apache
Java 中Apache-DBUtils类的使用详解
Java 中Apache-DBUtils类的使用详解
57 0
|
9月前
|
SQL 安全 Java
JDBC Apache—DBUtils 详解(通俗易懂)
JDBC 第六节 ApacheDBUtils详解!
112 0
|
10月前
|
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时关联的,如果关闭连接就不能使用结果集 结果集不利于数据管理(只能使用一次) 使用放回信息也不方便
116 0
【JDBC】Apache-DBUtils使用指南
|
数据库
DBUtils框架的使用(下)
DBUtils框架的使用(下)
81 0
DBUtils框架的使用(下)
|
SQL Java 数据库连接
DBUtils框架的使用(上)
DBUtils框架的使用(上)
104 0
DBUtils框架的使用(上)
|
druid Apache 数据库
|
Apache
Apache Commons DbUtils工具使用
Apache Commons DbUtils工具使用
134 0
Apache Commons DbUtils工具使用
|
SQL 关系型数据库 数据库
基于DBUtils实现数据库连接池
红酥手,黄縢酒,满城春色宫墙柳。东风恶,欢情薄。一怀愁绪,几年离索。错、错、错。春如旧,人空瘦,泪痕红浥鲛绡透。桃花落,闲池阁。山盟虽在,锦书难托。莫、莫、莫! 前言:Flask是一个轻量级的基于python的Web框架,本身是没有ORM的操作的,如果在Flask中连接数据库有两种方式,即:pymysql和SQLAlchemy。
2408 0