MyBatis核心接口和类的功能简介说明

乔欣 MyBatis 发布时间:2022-12-15 09:34:41 阅读数:14698 1
下文笔者讲述Mybatis核心接口和类的简介说明,如下所示

MyBatis框架核心对象

MyBatis框架中核心对象:
    包括核心接口和类

SqlSessionFactory实例
   属于MyBatis框架应用程序的核心。
SqlSessionFactory实例
   由SqlSessionFactoryBuilder对象
   通过XML配置文件或Configuration类的实例进行创建
SqlSession实例:
   使用SqlSessionFactory实例可获得SqlSession实例
      包括执行SQL操作的方法
      可以同过该实例执行已映射的SQL语句

SqlSessionFactoryBuilder

SqlSessionFactoryBuilder:
   负责根据配置文件信息构建SqlSessionFactory实例

SqlSessionFactoryBuilder提供多种builder()重载方法  
   如下所示:
    builder(Reader reader, String environment, Properties properties)
    builder(InputStream inputStream, String environment, Properties properties)
    builder(Configuration config)      

SqlSessionFactory

使用SqlSessionFactoryBuilder构建SqlSessionFactory实例
  是MyBatis框架应用的核心

SqlSessionFactory是创建SqlSession实例的工厂
    SqlSessionFactory提供了openSession()方法来获取SqlSession实例。

openSession(boolean 参数)方法:
    参数等于true时,表示自动提交事务,关闭事务控制
	false,表示关闭自动提交,开启事务控制

注意事项:
   在实际使用中,不建议反复销毁和创建SqlSessionFactory实例
    SqlSessionFactory实例一旦创建就应该在应用的运行周期中始终存在。

MybatisUtil编写

public class MyBatisUtil {
    private static String CONFIG_FILE = "mybatis-config.xml";
    private static SqlSessionFactory factory;
    
	static {
       try {
           InputStream stream = Resources.getResourceAsStream(CONFIG_FILE);
           factory = new SqlSessionFactoryBuilder().build(stream);
       } catch (IOException e) {
           e.printStackTrace();
       }
    }

   public static SqlSession getSqlSession(){
       return factory.openSession();
    }

    public static void close(SqlSession sqlSession){
       if (sqlSession!=null){
           sqlSession.close();
       }
    }
}

SqlSession

SqlSession:
    用于执行持久化操作
    它提供数据执行SQL命令的能力
   
    使用SqlSession提供的方法运行已映射的SQL语句
    SqlSession指一次数据库会话
    SqlSession实例是非线程安全的,不能被共享,
	每个线程都应该使用自己独立的SqlSession实例,
	SqlSession实例的生命周期不应该是永久的 

SqlSessionFactoryBuilder执行绑定的SQL语句有两种方式

基于字符串常量
   该方法有类型转换的问题
   Integer result = sqlSession.selectOne("com.java265.count");
    System.out.println("count = " + result);
 
基于Mapper接口
推荐使用Mapper接口
 无需进行类型转换
User user = sqlSession.getMapper(User.class);
        Integer count = user.count();
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/MyBatis/202212/5163.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者