Java資料持久層架構 MyBatis__Java資料持久層架構

來源:互聯網
上載者:User

MyBatis 的前身就是 iBatis 。是一個資料持久層(ORM)架構。

iBATIS一詞來源於“internet”和“abatis”的組合,是一個基於Java的持久層架構。iBATIS提供的持久層架構套件括SQL Maps和Data Access Objects(DAO),同時還提供一個利用這個架構開發的 JPetStore執行個體。

總體來說 MyBatis 主要完成兩件事情

 1.根據 JDBC 規範建立與資料庫的串連;

2.通過Annotaion/XML+JAVA反射技術,實現 Java 對象與關聯式資料庫之間相互轉化。

MyBatis技術文檔PPT分享

------------------------------------------分割線------------------------------------------

免費下載地址在 http://linux.linuxidc.com/

使用者名稱與密碼都是www.linuxidc.com

具體下載目錄在 /2014年資料/8月/3日/Java資料持久層架構 MyBatis

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割線------------------------------------------

Java實戰應用:Mybatis實現單表的增刪改 http://www.linuxidc.com/Linux/2014-06/103456.htm

[Java][Mybatis]物理分頁實現 http://www.linuxidc.com/Linux/2014-04/99889.htm

Mybatis快速入門教程 http://www.linuxidc.com/Linux/2013-06/85762.htm

Mybatis的關於批量資料操作的測試 http://www.linuxidc.com/Linux/2012-05/60863.htm

Mybatis中對List<Object> 對象List的批處理插入操作 http://www.linuxidc.com/Linux/2014-02/96916.htm

一、原理介紹

Mybatis的應用是圍繞著一個SqlSessionFactory執行個體展開的。SqlSessionFactoryBuilder根據XML對應檔建立SqlSessionFactory。

SqlSessionFactory由名字可以聯想到,可以通過它擷取一個SqlSession。SqlSession包含了執行sql所需要的所有方法,可以通過SqlSession執行個體直接運行映射的sql語句:

SqlSession session = sqlSessionFactory.openSession();
try {
  Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
} finally {
  session.close();
}

上面的方法是基於Mybatis的舊版本,在最新的版本中有更清晰的方法,通過一個java介面作為參數(e.g. BlogMapper.class)返回一個給定的sql映射。

SqlSession session = sqlSessionFactory.openSession();
try {
  BlogMapper mapper = session.getMapper(BlogMapper.class);
  Blog blog = mapper.selectBlog(101);
} finally {
  session.close();
}

看到這裡,您可能會對什麼才是SqlSession和Mapper類真正執行的sql語句非常好奇。下面我們看一下例子.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" parameterType="int" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>

這個例子非常簡單,是輕量級的。您可以定義眾多類似這樣的sql語句。這個檔案在命名空間"org.mybatis.example.BlogMapper"中,定義了一個叫做"selectBlog"的sql語句。這樣就可以使用一個絕對唯一路徑“org.mybatis.example.BlogMapper.selectBlog”定位到這個sql語句上。

如下所示:

Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);

請 注意 這是 一個絕對唯一的 Java類 調用 方法 如何 類似 的 。 這個名字 可以 直接 映射到 命名空間 的 映射 類 ,以及 具有 相匹配的 名稱 、參數 和 返回 類型 映射 select語句 的 方法 。 這使得 您可以 很 簡單地調用 映射 介面 的 方法 , 這裡 是 例子 :

BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);

如您所見,第二種方法更簡潔,不需要傳回值的cast。

到目前為止,我們已經瞭解Mybatis如何將xml對應檔與Java類映射去執行sql語句的,具體xml對應檔的含義請查詢mybatis官方網站的資料 ,再此不在介紹。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-08/105041p2.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.