每 一 個 MyBatis 的 應 用 程 序 都 以 一 個 SqlSessionFactory 對 象 的 實 例 為 核 心 。 SqlSessionFactory 對 象 的 實 例 可 以 通 過 SqlSessionFactoryBuilder 對 象 來 獲 得 。 SqlSessionFactoryBuilder 對象可以從 XML 配置文件,或從 Configuration 類的習慣準備的實例中構建 SqlSessionFactory 對象。
主要內容:1:通過非指定接口的方式實現CRUD。
近來打算開發一個技術框架,并應用此框架開發出一個論壇,開始打算用sturts2+spring+hibernate+jquery為基礎,然后再進行封裝,最后形成技術框架,但通過此網站獲知mybatis比hibernate更靈活,實用。因此開始逐步接觸mybatis。以下是mybatis3.0的開發實例,使用的java環境jdk5.0,ide為eclipse3.7,數據庫是oracle11g。
Hibernate簡介Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。?
最近項目中使用myBatis(iBatis),所以目前對所遇的一些問題及有些模糊的地方在這里標注一下。首先mybaits是一個“半自動化”的ORM框架。需要使用的jar包:mybatis-3.0.2.jar(mybatis核心包),mybatis-spring-1.0.0.jar(與spring結合jar包)這些jar可以去官網下載。?
MyBatis 是支持普通 SQL 查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除 了幾乎所有的 JDBC 代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML 或注解用于配置和原始映射,將接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 對象)映射成數據庫中的記錄。
MyBatis 是支持普通 SQL 查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除 了幾乎所有的 JDBC 代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML 或注解用于配置和原始映射,將接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 對象)映射成數據庫中的記錄。
MyBatis-Spring會幫助你將MyBatis代碼無縫地整合到Spring中。使用這個類庫中的類,Spring將會加載必要的MyBatis工廠類和session類。這個類庫也提供一個簡單的方式來注入MyBatis數據映射器和SqlSession到業務層的bean中。而且它也會處理事務,翻譯MyBatis的異常到Spring的DataAccessException異常(數據訪問異常,譯者注)中。
MyBatis是支持普通SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plan Old Java Objects,普通的Java對象)映射成數據庫中的記錄。
前世今生MyBatis的前身就是iBatis,iBatis本是由ClintonBegin開發,后來捐給Apache基金會,成立了iBatis開源項目。2010年5月該項目由Apahce基金會遷移到了Google Code,并且改名為MyBatis。MyBatis介紹MyBatis是一個數據持久層(ORM)框架。把實體類和SQL語句之間建立了映射關系,是一種半自動化的ORM實現。MyBatis的優點:1.基于SQL語法,簡單易學。2.能了解底層組裝過程。 3.SQL語句封裝在配置文件中,便于統一管理與維護,降低了程序的耦合度。4.程序調試方便。與傳統JDBC的比較減少了61%的代碼量最簡單的持久化框架架構級性能增強SQL代碼從程序代碼中徹底分離,可重用增強了項目中的分工增強了移植性JDBC與MyBatis直觀對比MyBatis就是將上面這幾行代碼分解包裝。
本文將簡要介紹怎樣利用Mybatis Generator自動生成Mybatis的相關代碼。在myEclipse中使用Mybatis Generator自動生成Mybatis的相關代碼分兩種情況:第一種,myEclipse不易安裝MybatisGenerator插件(8.5以下版本的myEclipse很難支持MybatisGenerator插件安裝)的情況;第二中就是8.5以上版本的myEclipse,安裝MybatisGenerator插件比較容易的情況。
mybatis-spring基本配置筆記
本節我們來關注SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和Mapper Instances的作用域極其生命周期。 以下翻譯自MyBatis官方文檔。譯文同時附上官方文檔,供讀者參考。
MyBatis 一種優秀的O/R mapping框架 , 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除 了幾乎所有的 JDBC 代碼和參數的手工設置以及結果集的檢索 。
MyBatis整合Spring開發
此功能主要是依靠“mybaits”插件,在安裝Eclipse時,就可以將此插件解壓到Eclipse->dropins下,這樣在Eclipse中就可以正常使用此插件了。主要操作要依靠“generatorConfig.xml”配置文件實現,信息都配置在這個文件中,然后就可以通過數據庫表和JavaBean類,生成很多東西.
MyBatis 本是apache的一個開源項目 iBatis , 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis。<br> MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除 了幾乎所有的 JDBC 代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML 或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java 對象)映射成數據庫中的記錄。
SqlSessionFactoryBean,這個配置比較關鍵。SqlSessionFactoryBean需要注入DataSource數據源,其次還要設置configLocation也就是mybatis的xml配置文件路徑,完成一些關于mybatis的配置,如settings、mappers、plugin等; 如果使用mapperCannerConfigurer模式,需要設置掃描根路徑也就是你的mybatis的mapper接口所在包路徑;凡是markerInterface這個接口的子接口都參與到這個掃描,也就是說所有的mapper接口繼承這個SqlMapper。 如果你不使用自己的transaction事務,就使用MapperScannerConfigurer來完成SqlSession的打開、關閉和事務的回滾操作。在此期間,出現數據庫操作的如何異常都會被轉換成DataAccessException,這個異常是一個抽象的類,繼承RuntimeException;
本文主要講解JDBC怎么演變到Mybatis的漸變過程,重點講解了為什么要將JDBC封裝成Mybaits這樣一個持久層框架。再而論述Mybatis作為一個數據持久層框架本身有待改進之處。
隨著開發團隊轉投Google Code旗下,ibatis3.x正式更名為Mybatis。相信很多朋友以前看過ibatis2.x,對ibatis2.x也比較熟悉,隨著技術的發展,我們必須跟得上技術發展的步伐,不能永遠停留在原來的技術上而不做進一步學習。由于在我的一個新項目中采用了mybatis,為此我發了幾天來學習了mybatis,相對hibernate來說,本人感覺mybatis相對來說更加簡單,特別是熟悉sql語句的朋友們,你在采用mybatis時,你會覺得跟傳統的jdbc方式來操作數據庫沒什么差別,只是mybatis幫你做了很多原來你在用jdbc來實現時的很多工作。我們來看看mybatis包含了哪些新特性。