EJB 3.0 規范由三部分組成:EJB3.0 Simplified API、EJB 核心規范(EJB Core Contracts and Requirements)和 JPA(Java Persistence API)。JPA 規范部分詳細的介紹了 JPA 中實體 Bean 的定義,并介紹了實體 Bean 支持的注釋、全新的查詢語言、實體管理接口、容器實現規范等內容。 JPA 標準制定過程中充分吸收了目前已經出現的所有持久化技術的所有優點,摒棄了它們存在的局限,使 JPA 在簡單易用、查詢能力等方面表現突出。
目標:使用Java持久性API把數據庫中的數據顯示出來。 基本過程包括: 加載驅動程序 創建數據庫以及表 在NetBeans中加載驅動程序 在NetBeans中創建連接 創建持久單元以及實體類 創建訪問持久單元的會話Bean 創建Servlet客戶端程序,訪問會話Bean,并顯示結果
關鍵類與接口Environment類:系統的環境變量key定義基本和hibernate.properties對應Settings類:存放系統配置信息轉換的對象熟悉,比如數據庫連接provider等Configuration類:系統配置信息皆在此。
簡介:iBATIS通過SQLMap將Java對象映射成SQL語句和將結果集再轉化成Java對象,與其他ORM框架相比,既解決了Java對象與輸入參數和結果集的映射,又能夠讓用戶方便的手寫使用SQL語句。本文主要介紹了iBATIS框架的體系結構和運行流程,以及iBATIS如何完成SQL語句的解析與Java對象與數據字段映射關系的建立,最后用一個實例說明了iBATIS是如何幫我們完成工作的。
iBatis是個像Hibernate, JDO,EJB一類的數據持久框架,它能將對象映射為SQL語句.它是個輕量級的框架并且持久性API適合持久化POJO.iBatis也與Hibernate, JDO不同,因為它使用存儲過程和現有的SQL來處理數據庫. 本節我們將向你講述如何配置iBatis來運行一個小型程序.既然一次性將所有知識全部解釋很難,我們索性把本教程分為幾個單獨的例子來陳述.該例是關于如何從數據庫讀取數據并將結果顯示在你的命令提示符上.在第二個例子中你將學習如何添加更多的數據到數據庫中,在此之后的第三個例子將會向你展示如何通過iBatis從記錄中刪除數據.
開發環境MyEclipse8.5。因為JPA只能應用在Hibernate3.2及以上的版本,而MyEclipse8.5的核心庫是Hibernate3.2的版本,在通過MyEclipse生成Hibernate的配置文件的時候會看到。
相對Hibernate和Apache OJB 等“一站式”ORM解決方案而言,ibatis 是一種“半自動化”的ORM實現。對于全自動化的模式,不論Hibernate 還是Apache OJB,都對數據庫結構提供了較為完整的封裝,提供了從POJO 到數據庫表的全套映射機制。程序員往往只需定義好了POJO 到數據庫表的映射關系,即可通過Hibernate或者OJB 提供的方法完成持久層操作。 POJO到數據庫表的映射SQL語句的自動生成和執行
關系映射指的是對象之間的關系并不是指數據庫的關系,表與表之間只有外鍵。以下總結都可參考官方文檔,注解均在文檔的第5章有所講解。 所謂A(one/many)對B(one/many)單向關聯,簡單的說就是從A方可以獲得B對象,而從B方不可獲得A對象。那么雙向關聯以此類推。
MyBatis簡介MyBatis是一個可以自定義SQL、存儲過程和高級映射的持久層框架。MyBatis摒除了大部分的JDBC代碼、手工設置參數和結果集重獲。MyBatis只使用簡單的XML和注解來配置和映射基本數據類型、Map接口和POJO到數據庫記錄。相對Hibernate和ApacheOJB等“一站式”ORM解決方案而言,ibatis是一種“半自動化”的ORM實現。
三、動態SQL語句有些時候,sql語句where條件中,需要一些安全判斷,例如按某一條件查詢時如果傳入的參數是空,此時查詢出的結果很可能是空的,也許我們需要參數為空時,是查出全部的信息。使用Oracle的序列、mysql的函數生成Id。這時我們可以使用動態sql。下文均采用mysql語法和函數(例如字符串鏈接函數CONCAT)。
SQL 映射XML 文件是所有sql語句放置的地方。需要定義一個workspace,一般定義為對應的接口類的路徑。寫好SQL語句映射文件后,需要在MyBAtis配置文件mappers標簽中引用。
ibatis一詞來源于“internet”和“abatis”的組合,是一個由Clinton Begin在2001年發起的開放源代碼項目。最初側重于密碼軟件的開發,現在是一個基于Java的持久層框架。 將“Internet”中象征性的“i”和abatis中的“batis”組合所以暗示了抵御Internet的意思。相對Hibernate和Apache OJB等“一站式”ORM解決方案而言,ibatis 是一種“半 自動化”的ORM實現。ibatis需要手寫sql語句,也可以生成一部分,Hibernate則基本上可以自動生成,偶爾會寫一些Hql。同樣的需求, ibatis的工作量比Hibernate要大很多。類似的,如果涉及到數據庫字段的修改,Hibernate修改的地方很少,而ibatis要把那些sql mapping的地方一一修改。
MyBatis是什么?MyBatis是一款一流的支持自定義SQL、存儲過程和高級映射的持久化框架。MyBatis幾乎消除了所有的JDBC代碼,也基本不需要手工去設置參數和獲取檢索結果。MyBatis能夠使用簡單的XML格式或者注解進行來配置,能夠映射基本數據元素、Map接口和POJOs(普通java對象)到數據庫中的記錄。