歌舞程序

导航

Hibernate初探(二)

看项目中的Hibernate和书上写的总是感觉有些出入,下午,结合着MyEclipse+6+java中文开发教程,对应着Hibernate,终于对项目中的使用有些头绪了。

教材上写的都是通过Hibernate对表进行映射,要生成两个类,一个对应POJO(plain and old java object)类,里面只是对应着get和set方法,对表中字段进行操作,另一个是DAO类,用于对表的update,select和delete等。要是这样的话,如果有多个表,比如几十个表的话,那对应着就是2倍多的类,而且对于DAO类来说,基本每个类的功能都是一样的。因此项目中对其进行了封装。总共使用到了四个类,分别是BaseDaoImpl,BaseDaoInf,BaseTransaction和熟悉的HibernateSessionFactory。其中BaseDaoInf是个接口,其中的方法都是在BaseDaoImpl中实现,BaseTransaction是业务层的父类,实现事物的处理,被其它业务对象继承。HibernateSessionFactory就是从中映射过来的。这样的话,对每个POJO类的操作,对通过BaseDaoImpl来操作。对应“MyEclipse+6+java中文开发教程”中的Hibernate开发例子功能。如下:

 public static void main(String[] args)
 {

//对应表的POJO类
  Student bean = new Student();
  bean.setUsername("李四");
  bean.setPassword("123456");
  bean.setAge(18);


  //DAO操作封装在BaseDaoImpl中
  BaseDaoImpl impl = new BaseDaoImpl();

//这一步获取和设置Session
  impl.setSession(HibernateSessionFactory.getSession());

//添加记录
  impl.saveObject(bean);

//使用HQL查询
  java.util.List<Student> results = impl.hqlQuery("from Student s");
  for(Student o:results)
  {
   System.out.println("编号:"+o.getId());
   System.out.println("姓名:"+o.getUsername());
  }
 }

posted on 2009-07-04 19:39  歌舞程序  阅读(205)  评论(0编辑  收藏  举报