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);
}
相关推荐
唐青枫4 小时前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
吃糖的小孩4 小时前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
笃行3501 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3501 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行3501 天前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
SelectDB2 天前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶2 天前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵2 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils2 天前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库