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
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

讓丄帝愛伱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值