# SqlSessionFactory
- SqlSessionFactory是MyBatis的核心对象
- 用于初始化MyBatis,创建SqlSession对象
- 需要保证SqlSessionFactory在应用中全局唯一 通常使用静态类的方式,对SqlSessionFactory进行初始化
# 导航
# 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
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