JavaBean

JavaBean指实体类,主要用于映射关系型数据库表,遵守下面四个构建规范

1.属性私有

2.属性拥有公开对应的get和set方法

3.拥有一个无参构造函数

4.实现序列化接口

在于关系型数据库的映射关系(ORM)中:

表单对应实体类

元组对应实体类对象

属性对应实体类的属性

JavaBean的实例化操作

将从数据库中读取的ResultSet集合赋值给实体类的时候,一般方法是一行中对每个属性调用set方法,如果表单中的数据多了,就需要写出冗长并且费时间的代码,下面探索一些方便的方法。

利用反射实例化

public static User getUser(String username) throws SQLException, ClassNotFoundException, NoSuchFieldException, InstantiationException, IllegalAccessException {

        //获取实体类的反射
        Class<?> clazz = Class.forName("POJO.User");
        //object为要返回的结果
        Object object=null;
        object=clazz.newInstance();

        //sql操作
        String sql="select * from user where userCode=?";
        Object[] objects=new Object[1];
        objects[0]=username;
        ResultSet resultSet=executeQuery(sql,objects);


        //metadata为结构集中的属性集合,getColumnCount方法可以获取属性个数
        ResultSetMetaData metaData = resultSet.getMetaData();
        while(resultSet.next()){
            for (int i = 0; i < metaData.getColumnCount(); i++) {
                //获取属性名字
                String name=metaData.getColumnName(i+1);
                
                
                //实体类属性都是私有的,所以需要setAccessible为true
                Field field=clazz.getDeclaredField(name);
                field.setAccessible(true);
                field.set(object,resultSet.getObject(name));
            }
        }
        return (User) object;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值