BeanPropertyRowMapper源码粗解(个人理解,还不完善)

  • Bean Property Row Mapper(仔细看看可以说哦):先简单回顾一下上周有人说到的query方法 query方法可以在数据库中取出我们想要操作的表的数据并返回一个结果集,使用BeanPropertyRowMapper,就是给query()方法传递一个BeanPropertyRowMapper对象,让JdbcTemplate帮我们把查询结果集ResultSet的每一行结果都使用BeanPropertyRowMapper.mapRow()方法,转化成我们想要的Java类对象,在使用BeanPropertyRowMapper时需要传入一个Class类型的对象,传入之后会先执行初始化方法,将想要类型的java类对象传入初始化方法,然后通过BeanUtile的getPropertyDescriptors方法获取到传入的javaBean类的所有属性,并将其放在pds数组中 以pds的长度为循环判断条件开始执行循环,将数组中的元素单独取出放在pd中(这样是为了方便操做)先判断这个元素是否存在get和set方法,因为在javaBean中所有的成员变量都是由private修饰且提供set和get方法来操作,这些成员变量对应的就是数据库中的列名,也就是我们要查找的数据,如果没有就将这个元素放到mappedProperties的set集合中,并执行下一次循环,取出数组中的下一个元素,如果存在get和set方法就将其所有的字母转化成小写并存放在mappedFields的map集合当中,然后继续执行判断,将该元素转化为带下划线的名字,并于转化为小写的名字进行对比,如果不相等将其存放到mappedFields集合当中,这样mappedFields集合当中就存放了数据库的列名的所有的可能取值,然后query方法开始查找数据库中的数据按照名称将他存放到对应的javaBean的属性当中从而返回一个数据类型为该javaBean类型的list集合,同时这个方法使得数据库的表再添加行的时候,行的名称要么全部小写,要么大写中间加下划线这两种形式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值