Mybaits入門之起航

前言

  Mybaits技術如今不少公司都在使用,它提供了簡單的API能夠快速進行數據庫操做,因此無論是本身作系統仍是找工做都有必要了解一下。sql

學習一門技術若是是入門的話要麼買書要麼就是閱讀官方的文檔,並且官方的文檔全且及時更新,因此建議閱讀官方文檔,本系列入門教程其實就是官方文檔的簡易漢化版(哈哈)數據庫

1.經過XML創建SqlSessionFactory

  Mybaits應用是一個SqlSessionFactory的實例,而SqlSessionFactory時經過SqlSessionFactoryBuilder得到的。SqlSessionFactoryBuilder可使用xml配置文件或者一些預先準備配置類實例化一個SqlSessionFactorysession

  經過xml配置得到一個SqlSessionFactory實例十分簡單,推薦你使用類路徑,可是你也可使用任何的InputStream實例(簡單的講,你把讀取的文件放到InputStream流裏面就行,文件隨你放哪裏),這裏注意一下Mybaitsmybatis

有一個工具類叫Resources,他提供了不少簡單的方法獲取資源。app

  xml配置文件包含mybaits系統的核心,包括數據庫連接、事物控制等 這裏咱們先貼一個簡單的代碼工具

1 String resource ="cn/dota/uc/test/cfg.xml"; 2         InputStream is = Resources.getResourceAsStream(resource); 3         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value=""/>
                <property name="url" value=""/>
                <property name="username" value=""/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/xxx/xxx/BlogMapper.xml" />
    </mappers>
</configuration>

注意圖中標紅的須要制定爲類路徑學習

還有一種方式時經過Configuration類設置屬性,這種方式侵入了代碼你們能夠本身看這段的文檔,本系列就不介紹了ui

2.經過SqlSessionFactory得到SqlSession

  經過SqlSession你就能夠開始操做數據庫了以下代碼url

  如今版本的Mybatis有了新的方式可使用接口進行開發以下spa

  一種實在BlogMapper.xml中指定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="cn.dota.uc.test.BlogMapper">
    <select id="selectBlog" resultType="cn.dota.uc.test.Blog">
        select * from Blog where id = #{id}
    </select>
</mapper>
SqlSession session = sqlSessionFactory.openSession();
        try{
            Blog blog = session.selectOne("cn.dota.uc.test.BlogMapper.selectBlog", 100);
        } finally{
            session.close();
        }

還有一種就是使用接口,首先咱們要定義一個接口BlogMapper,代碼以下

<?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="cn.dota.uc.test.BlogMapper">
</mapper>
SqlSession session = sqlSessionFactory.openSession(); try{   BlogMapper mapper = session.getMapper(BlogMapper.class);   Blog blog = mapper.selectBlog(101); } finally{   session.close(); }

這種方式須要注意的就是配置文件的namespace 中 value必須和 接口相對應

public interface BlogMapper { @Select("SELECT * FROM blog where id = #{id}") Blog selectBlog(int id); }

3總結

因此簡單來講 Mybatis開發的步驟就是

  1. 編寫配置文件和接口映射文件
  2. 使用SqlSessionFactoryBuilder讀取配置文件而且得到SqlSessionFactory;
  3. 使用SqlSessionFactory得到SqlSession 而後能夠經過兩種方式進行數據庫操做

生命週期和做用域

SqlSessionFactoryBuilder 僅僅用於創造sqlSessionFactory 因此可使用完丟棄

SqlSessionFactory 單例和靜態類是最好的方式

SqlSession 局部做用域就能夠了

相關文章
相關標籤/搜索