mybatis核心类
#1、SqlSessionFactory
创建SqlSession实例的工厂,每个Mybatis应用的核心,通过opensession()方法返回一个sqlsession对象
#2、SqlSession
执行持久化操作的对象,提供面向数据库执行sql命令的所有方法,每次用完后应该关闭。
##2.1 通过xml直接执行
User user = sqlSession.selectOne("com.wj.dao.mapper.UserMapper.selectId",1);
/*
com.wj.dao.mapper.UserMapper为UserMapper.xml文件的路径
selectId 为select标签的 id,调用标签中定义的sql语句
1 为传入的参数
***这种方法不推荐使用,现在都用mapper接口
*/
##2.2 通过mapper接口执行
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
/*
调用sqlsession对象的getMapper方法获取对象,调用接口中的方法,这些方法和mapper.xml文件中的sql语句相对应
*/
#3、创建工具类管理SqlSessionFactory、SqlSession对象
package com.wj.util;
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 java.io.IOException;
import java.io.InputStream;
/**
* @Description:
* @Author WJ
* @Date 2023/2/12:14:49
* @Version V1.0
**/
public class MybatisUtil {
/*
创建工具类管理SqlSessionFactory和SqlSession
*/
private static SqlSessionFactory factory;
static {//静态代码块包裹,使其只创建一次SqlSessionFactory对象
String resource = "mybatis-congif.xml"; //mybatis配置文件
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
throw new RuntimeException(e);
}
factory = new SqlSessionFactoryBuilder().build(inputStream);//获取SqlSessionFactory对象
}
public static SqlSession createSqlsession(){//获取SqlSession
return factory.openSession(false);
}
public static void closeSqlSession(SqlSession sqlSession){//关闭SqlSession
sqlSession.close();
}
}