当前位置: 首页 > 工具软件 > Bean Query > 使用案例 >

Java后端学习记录3-dbutils中QueryRunner().query()查询中字段名与bean属性名不一致导致无法获取相应属性值的问题

宗政鸿志
2023-12-01

在使用dbutils时,其query方法默认返回相应BeanHandler实例化时放入的运行时类的对象

当数据库表中的字段名与我们定义的Bean属性名不一致时,使用

select id, name, email, birth from customers where id = ?

不一致的属性值就会返回默认值(int返回0 引用数据类型返回null)

解决方法一:

更改sql语句(给查询字段起别名,该别名即为Bean中的属性名)

select id, name, email, birth birthday from customers where id = ?

这种方法解决起来高效快捷,不会出现其他问题,推荐

解决方法二:

①更改Bean中的属性名

这时更改时,相应的get/set方法以及构造器与tostring等重写的方法都需要更改,如果在原有生成的方法及构造器上更改属性名再测试时,依然会返回默认值(int返回0 引用数据类型返回null)。

②可以实现效果的更改:

在更改属性名之后,删掉相应的get/set方法以及构造器与tostring等重写的方法,重新alt+insert进行生成,这时再进行测试,问题解决。

解决方法二中的两种方法在我看来好像没有什么区别,但是实际运行时使用①方法还是会出现相同的问题,方法②却能够解决问题。这应该是IDEA方法内部未修改的原因?(推测,但感觉也没有没有道理)如果有懂的大神可以评论指导。

 类似资料: