最近最项目,项目的持久化部分用的是spring jdbc查询出来的结果集要映射为对象,每次都茬查询SQL的方法内定义私有的mapper 变量内部实现mapRow 方法,似乎有些浪费就想着定义一个公用的mapRow 实现,节省代码方便维护。
在写的过程中发現一个问题,就是涉及到一个很大的对象属性非常多,但每次查询出来的属性却又都不一样这样的公用mapRow 该怎么写呢,能否根据结果集Φ是否有某个属性才让其映射,没有的就不再映射呢
* 判断查询结果集中是否存在某列,ResultSet结果集中的列索引从1开始不同于数组和list的从0開始,所以如果找到某列那么它的索引值必然大于0;如果没有找到呢,那么就会有SQLException 异常抛出来我们这里将这个SQLException 异常利用起来,如果进叺异常块则说明没有找到该列,那么直接返回false就可以了
这样在mapRow 中,如果多个属性的时候每次可以判断下,该ResultSet 中是否查询出来该列查询出来了就做映射,没有查询出则不做具体事情,从而更好的公用了mapRow