MyBatis的基本使用
- 映射組態檔
- 資料庫連接組態檔引入
- 核心組態檔
- 相關API
- Resource
- SqlSessionFactoryBuilder
- SqlSessionFactory
- SqlSession
映射組態檔
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBitis的DTD約束,定義xml標簽約束,使開發者按照定義書寫-->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
mapper:核心的根標簽
namespace:名稱空間
-->
<mapper namespace="BookMapper">
<!--
select:查詢功能的標簽
id屬性:唯一的標識
resultType屬性:指定結果的映射物件的型別
parameterType屬性:指定引數映射物件型別
-->
<select id="selectAll" resultType="book">
SELECT * FROM book
</select>
<select id="selectById" resultType="book" parameterType="int">
SELECT * FROM book WHERE book_id = #{id}
</select>
<insert id="insert" parameterType="book">
INSERT INTO book VALUES (#{book_id}, #{book_name}, #{book_author}, #{book_publisher})
</insert>
<update id="update" parameterType="book">
UPDATE book SET book_name=#{book_name}, book_author=#{book_author} WHERE book_id=#{book_id}
</update>
<delete id="delete" parameterType="int">
DELETE FROM book WHERE book_id=#{book_id}
</delete>
</mapper>
-
定義xml標簽約束,使開發者按照定義書寫
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -
mapper:核心根標簽
- namespace:命名空間
-
select:查詢資料功能標簽,
- id屬性:唯一標識
- resultType屬性:指定結果映射物件的型別
- parameterType屬性:指定引數映射物件的型別
-
insert:新增資料功能標簽
- id屬性:唯一標識
- parameterType屬性:指定引數映射物件的型別
-
update:更新資料功能標簽
- id屬性:唯一標識
- parameterType屬性:指定引數映射物件的型別
-
delete:洗掉資料功能標簽
- id屬性:唯一標識
- parameterType屬性:指定引數映射物件的型別
資料庫連接組態檔引入
-
<properties>:引入資料庫連接組態檔標簽 -
resource屬性:資料庫組態檔路徑 -
獲取資料庫連接引數
${鍵名} -
代碼示例
<properties resource="jdbc.properties" />
核心組態檔
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBitis的DTD約束,定義xml標簽約束,使開發者按照定義書寫-->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration 根標簽-->
<configuration>
<!--引入資料庫組態檔-->
<properties resource="jdbc.properties" />
<!--起別名-->
<typeAliases>
<typeAlias type="com.cmy.bean.Book" alias="book" />
</typeAliases>
<!--environments配置資料庫環境,環境可以有很多個,而default屬性則是指定某個環境-->
<environments default="mysql1">
<!-- environment資料庫環境,id屬性:唯一標識 -->
<environment id="mysql1">
<!--transactionManager事務管理,type 采用JDBC默認的事務管理-->
<transactionManager type="JDBC" />
<!--dataSource資料庫源資訊 type屬性 連接池-->
<dataSource type="POOLED">
<!--property 獲取資料庫連接的配置資訊-->
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!--mappers引入映射組態檔-->
<mappers>
<!--mapper 引入指定的組態檔,resource:指定映射組態檔名稱-->
<mapper resource="BookMapper.xml" />
</mappers>
</configuration>
-
定義xml標簽約束,使開發者按照定義書寫
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> -
configuration:根標簽
-
typeAliases:為全類名起別名的父標簽
- typeAlias:為全類名起別名的子標簽
- type屬性:指定全類名
- alias屬性:指定別名
- package:為指定包下所有類起別名的子標簽(別名就是類名)
<package name="com.cmy.bean" />
- 此標簽需寫在核心組態檔里,在映射組態檔里就可以使用自定義的別名
- typeAlias:為全類名起別名的子標簽
-
environments:配置資料庫環境標簽
- default屬性:指定某個資料庫環境
-
environment:資料庫環境標簽,可以定義多個
- id屬性:唯一標識
-
transactionManager:事務管理標簽
- type屬性:指定事務管理型別
-
dataSource:資料庫源資訊標簽
- type屬性:指定連接池
-
property:獲取資料庫連接的配置資訊標簽
- name屬性:配置引數的名稱
- value屬性:配置引數的值
-
mappers:引入映射組態檔標簽
-
mapper:引入指定的組態檔
- resource屬性:指定映射組態檔名稱
相關API
Resource
-
org.apache.ibatis.io.Resource:加載資源的工具類 -
核心方法
方法名 回傳值 說明 getResourceAsStream(String fileName) InputStream 通過類加載器回傳指定資源的位元組輸入流 -
代碼示例
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactoryBuilder
-
org.apache.ibatis.session.SqlsessionFactoryBuilder:獲取 SqlSessionFactory工廠物件的功能類 -
核心方法
方法名 回傳值 說明 build(InputStream is) SqlSessionFactory 通過指定資源位元組輸入流獲取SqlSession工廠物件
SqlSessionFactory
-
org.apache.ibatis.session.SqlSessionFactory:獲取SqlSession構建者物件的工廠介面 -
核心方法
方法名 回傳值 說明 SqlSession openSession() 獲取SqlSession構建者物件,需手動開啟提交事務 SqlSession openSession(boolean autoCommit) 獲取SqlSession構建者物件,如果引數為true,則開啟自動開啟提交事務 -
代碼示例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession
-
org.apache.ibatis.session.SqlSession:構建者物件介面,用于執行SQL陳述句、管理事務、和介面的代理 -
核心方法
方法名 回傳值 說明 List selectList(String statement, Object paramter) 執行查詢陳述句,回傳List集合 T selectOne(String statement, Object paramter) 執行查詢陳述句,回傳一個結果物件 int insert(String statement, Object paramter) 執行插入陳述句,回傳影響行數 int update(String statement, Object paramter) 執行更新陳述句,回傳影響行數 int delete(String statement, Object paramter) 執行洗掉陳述句,回傳影響行數 void commit() 提交事務 void rollback() 回滾事務 T getMapper(Class cls) 獲取指定介面的代理實作類物件 void close() 釋放資源 -
代碼示例
// 默認關閉自動提交事務 SqlSession sqlSession = sqlSessionFactory.openSession(); // 開啟自動提交事務,可用于增刪改操作 SqlSession sqlSession = sqlSessionFactory.openSession(true); // 執行映射組態檔中的sql陳述句,并接收結果 // 查詢所有 List<Book> books = sqlSession.selectList("BookMapper.selectAll"); // 指定id查詢 Book book = sqlSession.selectOne("BookMapper.selectById", 2); // 插入 Book book = new Book(4, "測驗書籍", "無名氏","無出版社"); int result = sqlSession.insert("BookMapper.insert", book); // 更新 Book book = new Book(4, "改了名的書籍", "依然無名氏","無出版社"); int result = sqlSession.insert("BookMapper.update", book); // 洗掉 int result = sqlSession.delete("BookMapper.delete",4); // 釋放資源 sqlSession.close(); is.close();
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/267432.html
標籤:其他
上一篇:InnoDB收集統計資料
下一篇:MYSQL基礎
