# SqlSessionFactory

  • SqlSessionFactory是MyBatis的核心对象
  • 用于初始化MyBatis,创建SqlSession对象
  • 需要保证SqlSessionFactory在应用中全局唯一 通常使用静态类的方式,对SqlSessionFactory进行初始化

# 导航

回到mybatis导航页

# SqlSession

  • SqlSession是MyBatis操作数据库的核心对象
  • SqlSession使用JDBC方式与数据库交互
  • SqlSession对象提供了数据库表CRUD对应的方法
package com.torey.mybatis;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.io.Reader;


/**
 * @ClassName:MybatisTestor
 * @Description:
 * @author: Torey
 */
public class MybatisTestor {
    @Test
    public void testSqlSessionFactory() {
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            System.out.println(sqlSessionFactory);
            System.out.println("sqlSessionFactory加载成功");
            SqlSession sqlSession = null;
            try {
                sqlSession = sqlSessionFactory.openSession();
                System.out.println(sqlSession);
            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                if (null != sqlSession) {
                    //如果mybatis-config.xml中 dataSource type="POOLED",代表连接池,close()则是将连接回收到连接池中
                    ////如果mybatis-config.xml中 dataSource type="UNPOOLED",代表直连,close()则会调用底层Connection.close()方法关闭连接
                    sqlSession.close();
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

# 导航,上一页,下一页

mybatis-基础配置
初始化工具类MyBatisUtil

# 支持我-微信扫一扫-加入微信公众号

Aseven公众号

# 赞赏作者

赞赏作者