lao19884wang
lao19884wang
2013-04-19 22:25

hibernate

已采纳

再用hibernate 查询做查询操作的时候:
public User getUser(int id){
Session s=null;
s=HibernateUtil.getSession();
[color=red]Class userClass=User.class;
User user=(User)s.get(userClass, id);[/color]

return user;
}

其中 Class userClass=User.class
可以写成 Class userClass=Class.forName("dao.User");用上面的写法有什么好处了

 User user=(User)s.get(userClass, id);

这条语句是根据id查询 返回一条数据然后通过hibernate中某些功能封装成对象?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • jinnianshilongnian jinnianshilongnian 8年前

    其中 Class userClass=User.class
    可以写成 Class userClass=Class.forName("dao.User");用上面的写法有什么好处了

    Class.forName(?) 名字是可变的 也就是经常用于 变/动态的类名时(如通过配置文件动态配置)

    User user=(User)s.get(userClass, id);
    这条语句是根据id查询 返回一条数据然后通过hibernate中某些功能封装成对象?
    可以这么认为 其实主要还是反射:
    1、反射创建userClass 这要求必须有public 空参构造器
    2、反射设置相应的属性

    点赞 评论 复制链接分享

相关推荐