真的是个大坑,jdbcTemplate.queryForObject中的BeanPropertyRowMapper的功能太弱了,虽说它也能实现spring orm功能,但是相比之下,还是很弱。
Spring的ORM(Object-Relational Mapping)
是一种将对象和关系型数据库进行映射的技术,它使得在Java应用程序和关系型数据库之间进行数据转换变得更加容易。使用ORM技术,可以通过Java代码来进行数据库操作,而不需要直接使用SQL语句。
而jdbcTemplate.queryForObject中的BeanPropertyRowMapper有着严格的命名限制,比如你在spring封装的类的属性名称必须要和数据库中的字段名称相同,包括类型和名字。最多可以在中间添加一个下划线,否则就无法实现映射,读出来的值都有问题。像下面这样
[Books{ids=0, names='null', price=0}, Books{ids=0, names='null', price=0}, Books{ids=0, names='null', price=0}, Books{ids=0, names='null', price=0}, Books{ids=0, names='null', price=0}, Books{ids=0, names='null', price=0}, Books{ids=0, names='null', price=0}]
全是空值
当将两者修改统一后,就OK了