表字段与JavaBean映射

版权声明: https://blog.csdn.net/hzy52013/article/details/80496103

用到的是jdbc进行对数据库查询,这里是根据JavaBean中的属性名进行查询的,所以属性名要和字段名一致,然后再利用反射,将表字段映射到JavaBean中对应的属性。

例子:

public class JdbcResult {
    //这里需要获取两个参数,查询结果,JavaBean
    public static <T> List<T> getResult(ResultSet rs,T t){
        Class<T> clazz=(Class<T>) t.getClass();
        //获取JavaBean里面的所有属性
        Field[] field = clazz.getDeclaredFields();
        T obj=null;
        //创建list容器,存放映射后的JavaBean对象
        List<T> list=new ArrayList<T>();
            try {
                //开始遍历查询结果
                while(rs.next()){
                    //创建Javabean对象
                    obj =clazz.newInstance();
                    //循环将查询结果写入对应的JavaBean属性中
                for (Field f : field) {
                    //判断是否查询到对应的值
                    if(rs.getObject(f.getName())!=null){
                        //跳过检查,这里访问的时私有属性
                        f.setAccessible(true);
                        //将查询到的值付给对应的属性
                        f.set(obj, rs.getObject(f.getName()));
                    }
                }
                //把每一列都添加到容器中
                list.add(obj);
                }
            } catch (SQLException e) {
                System.err.println("结果集遍历失败");
                e.printStackTrace();
            }  catch (Exception e) {
                System.err.println("数据读取失败");
                e.printStackTrace();
            }
        return list;
    }
}

猜你喜欢

转载自blog.csdn.net/hzy52013/article/details/80496103