面向新用戶,從一個簡單的使用內存數據庫的例子開始,本章提供對 Hibernate 的逐步介紹。本 教程基于 Michael Gloegl 早期編寫的手冊。所有代碼都包含在 tutorials/web 目錄下。
Hibernate 是處于開發中的持久層框架,他是一個 ORM 映射工具(Object/RelationMapping,對象-關系映射,就是通過將 Java 對象映射到數據庫表,通過操作 Java 對象,就 可以完成對數據表的操作)。是輕量級 JavaEE 應用的持久層解決方案。
如果你也在用Mybatis,建議嘗試該分頁插件,這個一定是最方便使用的分頁插件。該插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種數據庫分頁。
MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優秀的持久層框架。 MyBatis 避免了幾乎所有的 JDBC 代碼和手工設置參數以及抽取結果集。 MyBatis 使用簡單的 XML 或 注解 來配置和映射,將 接口 和 Java 的 POJOs(Plain Old Java Objects, 普通的 Java對象)映射成數據庫中的記錄
MyBatis 是一個支持自定義SQL,存儲過程及高級映射的經典持久化框架。MyBatis消除了幾乎全部JDBC代碼及返回結果集和參數的手工設置。MyBatis能使用簡單的XML或者注解為配置及原始映射、接口映射及JAVA POJOS(Plain Old JAVA Objects)到數據庫記錄。
MyBatis是一個可以自定義SQL、存儲過程和高級映射的持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及對結果集的檢索。MyBatis可以使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJO(PlainOldJavaObjects,普通的Java對象)映射成數據庫中的記錄。
根據官方的說法,在ibatis3,也就是Mybatis3問世之前,Spring3的開發工作就已經完成了,所以Spring3中還是沒有對Mybatis3的支持。因此由Mybatis社區自己開發了一個Mybatis-Spring用來滿足Mybatis用戶整合Spring的需求。下面就將通過Mybatis-Spring來整合Mybatis跟Spring的用法做一個簡單的介紹。
曾經用過ibatis,這是mybatis的前身,當時在做項目時,感覺很不錯,比hibernate靈活。性能也比hibernate好。而且也比較輕量級,因為當時在項目中,沒來的及做很很多筆記。后來項目結束了,我也沒寫總結文檔。已經過去好久了。但最近突然又對這個ORM工具感興趣。因為接下來自己的項目中很有可能采用這個ORM工具。所以在此重新溫習了一下mybatis,因此就有了這個系列的mybatis教程.
在hibernate中一對多關聯時會經常用到inverse和cascade屬性
對象/關系映射ORM(Object-RelationMapping)是用于將對象與對象之間的關系對應到數據庫表與表之間的關系的一種模式。簡單地說,ORM是通過使用描述對象和數據庫之間映射的元數據,將Java程序中的對象自動持久化到關系數據庫中。對象和關系數據是業務實現的兩種表現形式,業務實體在內存中表現為對象,在數據庫中表現為關系數據。內存中的對象之間存在著關聯和繼承關系。而在數據庫中,關系數據無法直接表達多對多關聯和繼承關系。因此,ORM系統一般以中間件的形式存在,主要實現程序對象到關系數據庫數據的映射。一般的ORM包括四個部分:對持久類對象進行CRUD操作的API、用來規定類和類屬性相關查詢的語言或API、規定mappingmetadata的工具,以及可以讓ORM實現同事務對象一起進行dirtychecking、lazyassociationfetching和其他優化操作的技術。
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。