在使用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方法内部未修改的原因?(推测,但感觉也没有没有道理)如果有懂的大神可以评论指导。