Java框架學習_Mybatis(五)Mybatis架構體系
阿新 • • 發佈:2019-01-10
1、Mybatis架構體系(面試可能會問):
- 和其他框架一樣,Mybatis也需要也配置檔案SqlMapConfig.xml核心配置,裡面對應每一個表會有很多的mappers配置
- 用SqlSessionFactoryBuilder類的build方法建立一個SqlSessionFactory介面的例項(這裡會呼叫Mybatis的工具類將核心配置檔案作為輸入流輸入)
- 開啟一個SqlSession會話
- SqlSession是一個介面例項,底層真正呼叫的是excutor,會建立Mybatis自己的MappedStatement對資料庫進行增刪改查操作(就相當於JDBC裡面的statement/prestatement,然後呼叫excuteQuery方法一樣
- 輸入對映是Map、String/Integer等基本型別、pojo
- 輸出對映是Map、String/Integer等基本型別、pojo、List
具體程式碼的體現如下(包不要導錯!)
package cn.nupt.mybatis.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import cn.nupt.pojo.User;
public class MybatisCore {
public void mybatis() throws IOException {
SqlSessionFactoryBuilder factoryBuilder = new SqlSessionFactoryBuilder();
//SqlMapConfig.xml核心配置,裡面對應每一個表會有很多的<mappers>配置
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//用SqlSessionFactoryBuilder類的build方法建立一個SqlSessionFactory介面的例項
SqlSessionFactory sqlSessionFactory = factoryBuilder.build(inputStream);
//開啟一個會話
SqlSession session = sqlSessionFactory.openSession(true);
//然後這個會話回撥用excute方法呼叫Mybatis自己的MappedStatement對資料庫進行操作(就相當於JDBC裡面的statement/prestatement,呼叫excuteQuery方法一樣)
List<User> list = session.selectList("user.getUserByName", "張");
//輸入對映是Map、String/Integer等基本型別、pojo
//輸出對映是Map、String/Integer等基本型別、pojo、List等型別
}
}