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);
}
相关推荐
Absurd58713 小时前
PHP怎么实现SAML单点登录_PHP企业级SSO解决方案【指南】
jvm·数据库·python
JZC_xiaozhong13 小时前
连锁餐饮企业如何统一ERP、WMS、BOH多系统权限?一套可落地的IAM架构方案
大数据·数据库·架构·iam·企业数据安全·数据集成与应用集成·多系统权限管理
2301_7965885013 小时前
PHP源码能否在无盘工作站运行_网络启动硬件要求【说明】
jvm·数据库·python
qq_4240985613 小时前
CSS如何让文字超出两行显示省略号_使用line-clamp属性限制
jvm·数据库·python
qq_3729069313 小时前
如何重命名SQL触发器名称_使用sp_rename重新定义标识
jvm·数据库·python
解救女汉子13 小时前
SQL如何统计每日新增用户数_窗口函数与日期维度的结合
jvm·数据库·python
djjdjdjdjjdj13 小时前
PyTorch bfloat16 张量转 NumPy 的兼容性解决方案
jvm·数据库·python
Greyson113 小时前
实现 Flex 容器内子元素自适应高度并启用自动滚动
jvm·数据库·python
xyghehehehe13 小时前
【MySQL深入详解】第11篇:内存与IO配置——InnoDB核心参数调优
数据库
m0_5964063713 小时前
Redis如何配置主从复制关系_利用REPLICAOF命令将节点挂载至主节点
jvm·数据库·python