1. 程式人生 > >Java框架學習_Mybatis(五)Mybatis架構體系

Java框架學習_Mybatis(五)Mybatis架構體系

1、Mybatis架構體系(面試可能會問):

  1. 和其他框架一樣,Mybatis也需要也配置檔案SqlMapConfig.xml核心配置,裡面對應每一個表會有很多的mappers配置
  2. 用SqlSessionFactoryBuilder類的build方法建立一個SqlSessionFactory介面的例項(這裡會呼叫Mybatis的工具類將核心配置檔案作為輸入流輸入)
  3. 開啟一個SqlSession會話
  4. SqlSession是一個介面例項,底層真正呼叫的是excutor,會建立Mybatis自己的MappedStatement對資料庫進行增刪改查操作(就相當於JDBC裡面的statement/prestatement,然後呼叫excuteQuery方法一樣
  5. 輸入對映是Map、String/Integer等基本型別、pojo
  6. 輸出對映是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等型別 } }