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);
}
相关推荐
IvorySQL3 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·3 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
野生技术架构师3 小时前
SQL语句性能优化分析及解决方案
android·sql·性能优化
IT邦德3 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫3 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i3 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.4 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn4 小时前
【Redis】渐进式遍历
数据库·redis·缓存
橙露4 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot