Mybaits技術如今不少公司都在使用,它提供了簡單的API能夠快速進行數據庫操做,因此無論是本身作系統仍是找工做都有必要了解一下。sql
學習一門技術若是是入門的話要麼買書要麼就是閱讀官方的文檔,並且官方的文檔全且及時更新,因此建議閱讀官方文檔,本系列入門教程其實就是官方文檔的簡易漢化版(哈哈)數據庫
Mybaits應用是一個SqlSessionFactory的實例,而SqlSessionFactory時經過SqlSessionFactoryBuilder得到的。SqlSessionFactoryBuilder可使用xml配置文件或者一些預先準備配置類實例化一個SqlSessionFactory。session
經過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
經過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); }
因此簡單來講 Mybatis開發的步驟就是
SqlSessionFactoryBuilder 僅僅用於創造sqlSessionFactory 因此可使用完丟棄
SqlSessionFactory 單例和靜態類是最好的方式
SqlSession 局部做用域就能夠了