SqlSession的使用
一、SqlSession是什么?
SqlSession是MyBatis的关键对象,是执行持久化操作的对象,类似于JDBC中的Connection。它是应用程序与持久层之间执行交互操作的一个单线程对象,也是MyBatis执行持久化操作的关键对象。SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法,它的底层封装了JDBC连接,可以用SqlSession实例来直接执行被映射的SQL语句。每个线程都应该有它自己的SqlSession实例。
SqlSession的实例不能被共享,也是线程不安全的,绝对不能将SqlSession实例的引用放在一个类的静态字段甚至是实例字段中。也绝不能将SqlSession实例的引用放在任何类型的管理范围中,比如Servlet当中的HttpSession对象中。使用完SqlSession之后关闭Session很重要,应该确保使用finally块来关闭它。
二、SqlSession的使用
1、在pom.xml中配置junit测试模块

添加代码如下:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
2、然后点击右下角的自动加载驱动,导入junit单元测试包

3、在下面的文件夹下创建对应的包和类:

4、然后编写下面的代码,下面的代码主要是使用SqlSession实现数据库的连接和关闭
package com.test.mybatis;
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 org.junit.Test;
import javax.annotation.Resource;
import java.io.IOException;
import java.io.Reader;
import java.sql.Connection;
public class SqlSessionTest {
@Test
public void test() throws IOException {
// 加载MyBatis的配置文件mybatis-config.xml
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
// 使用SqlSessionFactoryBuilder构建SqlSessionFactory对象
SqlSessionFactory fa = new SqlSessionFactoryBuilder().build(reader);
// 通过SqlSessionFactory创建SqlSession对象
SqlSession session = null;
try{
session = fa.openSession();
// 从SqlSession对象中获取数据库连接
Connection conn = session.getConnection();
System.out.println(conn);
}catch (Exception e){
System.out.println(e.getMessage());
}finally { //如果出现异常,关闭连接
/*
* 关闭数据库时须知:
* 如果type="POOLED”,那么代表使用连接池,close则是将连接回收到连接池中
*如果type=“UNPOOLED”,那么代表直连,close则会调用Connection.close() 方法关闭连接
* */
if(session != null){
session.close(); //关闭连接
}
}
}
}5、编写完后,对方法右键可以运行查看是否有问题

运行完成后的结果:

看到上面的结果就代表连接成功
毕设系统定制、课程教学、问题1对1远程解答,可联系村长QQ:330168885
需要购买本课才能留言哦~