JDBC使用QreryRunner简化SQL查询注意事项

QreryRunner是Dbutils的核心类之一,它显著的简化了SQL查询,并与ResultSetHandler协同工作将使编码量大为减少。

注意事项

  1. 使用QreryRunner必须保证实体类的变量名,和sql语句中要查找的字段名必须相同,否则查询

不到数据,会出现NullPointerException异常

此时sql语句名和数据库名不一致

java 复制代码
public Manager selectManagerByName(String name) throws SQLException {
    QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
    String sql = "select mgr_id,login_name,login_pwd ,mgr_name " +
                ",mgr_gender ,mgr_tel ,mgr_email ,mgr_qq ,create_time  " +
                "from tb_managers where login_name=?";
    Object[] args = {name};
    return qr.query(sql,new BeanHandler<>(Manager.class),args);
}

异常

加上别名后可正常查询

java 复制代码
public Manager selectManagerByName(String name) throws SQLException {
    QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
    String sql = "select mgr_id mgrId ,login_name loginName,login_pwd loginPwd,mgr_name mgrName" +
                ",mgr_gender mgrGender,mgr_tel mgrTel,mgr_email mgrEmail,mgr_qq mgrQQ,create_time createTime " +
                "from tb_managers where login_name=?";
    Object[] args = {name};
    return qr.query(sql,new BeanHandler<>(Manager.class),args);
}
相关推荐
春生野草20 小时前
SpringBoot配置文件
java·数据库·spring boot
奇点 ♡20 小时前
MySQL基础题
数据库·sql·mysql
唐古乌梁海20 小时前
【mysql】MySQL 数据库迁移
数据库·mysql·adb
啊吧怪不啊吧20 小时前
SQL之表的时间类内置函数详解
大数据·服务器·数据库·sql
2503_9284115620 小时前
11.5 包和包管理器
数据库·arcgis·node.js·编辑器
JanelSirry20 小时前
真实场景:防止缓存穿透 —— 使用 Redisson 布隆过滤器
数据库·mysql·缓存·redisson·布隆过滤器
mmm.c20 小时前
mysql启动提示1067:进程意外终止
数据库·mysql
埃泽漫笔21 小时前
Redis单线程还是多线程?
数据库·redis·缓存
虎子_layor21 小时前
PostgreSQL这么多优势,为什么还要使用MySQL
后端·sql
TDengine (老段)21 小时前
TDengine 产品组件 taosX
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据