Hibernate初探(二)
看項(xiàng)目中的Hibernate和書(shū)上寫(xiě)的總是感覺(jué)有些出入,下午,結(jié)合著MyEclipse+6+java中文開(kāi)發(fā)教程,對(duì)應(yīng)著Hibernate,終于對(duì)項(xiàng)目中的使用有些頭緒了。
教材上寫(xiě)的都是通過(guò)Hibernate對(duì)表進(jìn)行映射,要生成兩個(gè)類,一個(gè)對(duì)應(yīng)POJO(plain and old java object)類,里面只是對(duì)應(yīng)著get和set方法,對(duì)表中字段進(jìn)行操作,另一個(gè)是DAO類,用于對(duì)表的update,select和delete等。要是這樣的話,如果有多個(gè)表,比如幾十個(gè)表的話,那對(duì)應(yīng)著就是2倍多的類,而且對(duì)于DAO類來(lái)說(shuō),基本每個(gè)類的功能都是一樣的。因此項(xiàng)目中對(duì)其進(jìn)行了封裝。總共使用到了四個(gè)類,分別是BaseDaoImpl,BaseDaoInf,BaseTransaction和熟悉的HibernateSessionFactory。其中BaseDaoInf是個(gè)接口,其中的方法都是在BaseDaoImpl中實(shí)現(xiàn),BaseTransaction是業(yè)務(wù)層的父類,實(shí)現(xiàn)事物的處理,被其它業(yè)務(wù)對(duì)象繼承。HibernateSessionFactory就是從中映射過(guò)來(lái)的。這樣的話,對(duì)每個(gè)POJO類的操作,對(duì)通過(guò)BaseDaoImpl來(lái)操作。對(duì)應(yīng)“MyEclipse+6+java中文開(kāi)發(fā)教程”中的Hibernate開(kāi)發(fā)例子功能。如下:
?public static void main(String[] args)
?{
//對(duì)應(yīng)表的POJO類
??Student bean = new Student();
??bean.setUsername("李四");
??bean.setPassword("123456");
??bean.setAge(18);
??//DAO操作封裝在BaseDaoImpl中
??BaseDaoImpl impl = new BaseDaoImpl();
//這一步獲取和設(shè)置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("編號(hào):"+o.getId());
???System.out.println("姓名:"+o.getUsername());
??}
?}
轉(zhuǎn)載于:https://www.cnblogs.com/oldsea/archive/2009/07/04/1516929.html
總結(jié)
以上是生活随笔為你收集整理的Hibernate初探(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎样去理解@ComponentScan注
- 下一篇: Order By 排序条件中带参数的写法