/*用反射实现sql语句调用的思路:
1、先用ResultSetMetaData获取我们的ResultSet 的Sql语句,通过Sql语句我们可以联想到如何获取到我们的字段
(字段代表Sql语句的字段,也就是我们表的列名)
2、再获取sql语句里的字段长度(字段的个数)
3、遍历我们的rs得到rs的结果集,别忘了定义得到我们封装的对象
4、根据Sql语句里字段的长度遍历得到我们的字段
(根据我们的命名需要,这时候我们需考虑字段中含有的下划线,
我们这时要对字段含有的下划线进行处理,当然这一步我们可以忽略不计)
5、到这一步时,我们需要考虑如何才能获取到我们封装的类型以及封装的字段名称?当然我们封装的名称,
与Sql语句的字段名称是一致的。这个时候我们可以根据字段的名称来找到我们封装的类型是什么。
6、这里我们需要先把字段名首字母大写,再用Method 拼接方法调用我们封装的set 方法 :(set + name,type)
7、判断类型,跟数据库一一对应,把取到的值返回即可。
*/
实现代码:
public static <T> List<T> toReflect(ResultSet rs, Class<T> obj) {
try {
List<T> list = new ArrayList<T>();
//ResultSetMetaData 用于获取关于 ResultSet 对象中列的类型和属性信息的对象。
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
T instance = null;
while (rs.next())