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、编写完后,对方法右键可以运行查看是否有问题
运行完成后的结果:
看到上面的结果就代表连接成功
需要购买本课才能留言哦~