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());
??}
?}
轉載于:https://www.cnblogs.com/oldsea/archive/2009/07/04/1516929.html
總結
以上是生活随笔為你收集整理的Hibernate初探(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样去理解@ComponentScan注
- 下一篇: [云框架]KONG API Gatewa