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);
}
相关推荐
数据组小组11 小时前
免费数据库管理工具深度横评:NineData 社区版、Bytebase 社区版、Archery,2026 年开发者该选哪个?
数据库·测试·数据库管理工具·数据复制·迁移工具·ninedata社区版·naivicat平替
爱可生开源社区14 小时前
MiniMax M2.5 的 SQL 能力令人惊艳!
sql·llm
Nyarlathotep011318 小时前
事务隔离级别
sql·mysql
悟空聊架构18 小时前
基于KaiwuDB在游乐场“刷卡+投币”双模消费系统中的落地实践
数据库·后端·架构
IvorySQL18 小时前
PostgreSQL 技术日报 (3月4日)|硬核干货 + 内核暗流一网打尽
数据库·postgresql·开源
Nyarlathotep011320 小时前
SQL的事务控制
sql·mysql
进击的丸子21 小时前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
NineData2 天前
NineData智能数据管理平台新功能发布|2026年1-2月
数据库·sql·数据分析
IvorySQL2 天前
双星闪耀温哥华:IvorySQL 社区两项议题入选 PGConf.dev 2026
数据库·postgresql·开源
ma_king2 天前
入门 java 和 数据库
java·数据库·后端