MyBatis-第二章
Dao介面引入
1. 修改mapper檔案的 namespace, 對應介面類的全路徑
2. 創建BookDao.java 介面類
3. 介面方法名對應mapper的SQL id
4. 定義反參和入參(如有)
Service引入
1. 創建service, serviceImpl 結構包,對應BookService, BookServiceImpl
2. 獲取連接
3. 代理功能

通過SqlSession的代理功能,呼叫Dao層介面方法
插入示例
1. 書寫mapper 的SQL
2. 書寫dao層,注意方法名要和mapper里的id保持一致
3. 引數數量和型別保持一致,并使用注解@Param("bookName")對應mapper的引數名
如果只有一個入參,可以不寫@Param注解,但不建議
4. 書寫Service層代碼
MyBatis工具類引入
package com.gxy.util;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
private static SqlSessionFactory factory;
//保證service層 進行多次dao操作,公用一個SqlSession物件
private static ThreadLocal<SqlSession> tl = new ThreadLocal<SqlSession>();
static{
try {
String resouce = "mybatis-config.xml"; //代表總組態檔的路徑
InputStream is = Resources.getResourceAsStream(resouce);//使用輸入流讀取組態檔
factory = new SqlSessionFactoryBuilder().build(is);//facotry只需要創建一個
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
SqlSession session = tl.get();
if(session == null) {
session = factory.openSession();
tl.set(session);
}
return session;
}
public static void close(){
SqlSession session = tl.get();
if(session != null){
session.close();
tl.set(null);
}
}
}
全程公用一個SqlSessionFactory
1. 復制MyBatisUtil工具類到util包
2. 修改service配置
插入并查詢示例
生命周期2
1. 首先加載mybatis-config.xml總組態檔,根據development的引數配置連接資料庫;查詢mappers映射關系,找到mapper.xml組態檔
2. 執行mapper.xml檔案,該檔案記錄了運行SQL
3. 在dao介面層,dao的方法名對應mapper.xml的ID
一個表 對應 一個物體 對應 一個mapper 對應 一個dao
4. 在service層,通過工具類獲取連接;通過代理模式(反射)獲取dao介面物件
5. 呼叫dao介面方法,執行SQL陳述句
6. 關閉SqlSession
完成修改,洗掉示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/11287.html
標籤:Oracle
