甘肃建投建设有限公司网站,wordpress 4.7.3 慢,佛山seo培训机构,建设网站要钱吗假设我们要查询数据库的用户信息#xff0c;在MyBatis框架中#xff0c;首先需要通过SqlSessionFactory创建SqlSession#xff0c;然后才能使用SqlSession获取对应的Mapper接口#xff0c;进而执行查询操作
在前一章我们学习了如何创建MyBatis的配置文件mybatis.config.xm…假设我们要查询数据库的用户信息在MyBatis框架中首先需要通过SqlSessionFactory创建SqlSession然后才能使用SqlSession获取对应的Mapper接口进而执行查询操作
在前一章我们学习了如何创建MyBatis的配置文件mybatis.config.xml本章我们要学习创建SqlSessionFactory读取mybatis.config.xml配置信息数据库驱动连接URL用户名和密码来建立与数据库的连接基础。它是创建SqlSession对象的工厂而SqlSession对象是与数据库进行实际交互的关键是用于执行SQL语句管理事务以及获取映射器Mapper的核心接口 如果没有SqlSessionFactory就无法获取SqlSession也就不能执行诸如查询插入更新和删除等数据库操作 前一章MyBatis的配置文件mybatis-config.xml配置内容为 我们在IDEA中用代码演示如何创建SqlSession对象首先我们要打开pom.xml文件为了测试的方便引入单元测试组件junitjunit是Java中单元测试框架通过单元测试可以了解我们程序的运行情况 dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependency
在引用以后我们打开test下java这个目录新建包名为com.test.mybatis,test这个包保存的就是我们一个个的单元测试类 在这个包下再创建一个名为MyBatisTestor单元测试类 该类的代码内容创建如下
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 java.io.IOException;
import java.sql.Connection;//JUNIT单元测试类
public class MybatisTestor {Testpublic void testSqlSessionFactory() throws IOException {//利用Reader加载classpath下的mybatis—config.xml核心配置文件Reader reader Resources.getResourceAsReader(mybatis-config.xml);//初始化SqlSessionFactory对象同时解析mybatis—config.xml文件SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(reader);System.out.println(SessionFactory加载成功);SqlSession sqlSession null;try{//创建SqlSession对象SqlSession是JDBC的扩展类用于与数据库交互sqlSession sqlSessionFactory.openSession();//创建数据库连接测试用Connection connection sqlSession.getConnection();System.out.println(connection);}catch(Exception e){e.printStackTrace();}finally{//如果sqlSession不等于null则代表创建成功if(sqlSession !null){//如果typePOOLED,代表使用连接池close则是将连接回收到连接池中//如果typeUNPOOLED,代表直连close则会调用Connection.close()方法关 闭连接sqlSession.close();}
}
}代码语句功能实现解析
Reader reader Resources.getResourceAsReader(mybatis-config.xml);这行语句主要实现以字符流的方式进行读取读取mybatis-config.xml文件的代码
SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(reader);而这段语句则是利用构造者模式SqlSessionFactoryBuilder初始化SqlSessionFactory对象通过构造者模式的.build方法将reader对象传入它就会通过reader对象解析和读取MyBatis的核心配置文件mybatis-config.xml并且返回对应的sqlSessionFactory对象
然后需要我们利用sqlSessionFactory.openSession根据mybatis-config.xml描述的配置信息得到SqlSession对象用于与数据库交互SqlSession对象我们把它形象的看作是一个底层的数据库连接在Mybatis中利用SqlSession对数据表进行增删改查操作
//openSession方法是SqlSessionFactory提供的用于创建SqlSession方法
SqlSession sqlSession sqlSessionFactory.openSession();当我们进行数据库操作的时候我们可以利用SqlSession提供的一系列方法来完成交互 引用.getConnection来得到数据库连接对象之后将connection对象打印出来演示创建数据库连接的过程在正常开发时是由Mybatis自动帮我们完成的我们并不需要用到这行代码这里为了方便大家理解只做演示使用
Connection connection sqlSession.getConnection();
System.out.println(connection);
运行得到结果 数据库连接已经能够正常创建说明我们mybatis.config.xml所描述的信息是正确的
对于数据库来说有创建连接数据库就要有关闭数据库的操作目前我们实现了数据库连接那么如何对数据库进行关闭呢我们对下面这组代码进行try-catch异常检查并实现关闭数据库操作代码
SqlSession sqlSession null;
try{//创建SqlSession对象SqlSession是JDBC的扩展类用于与数据库交互sqlSession sqlSessionFactory.openSession();//创建数据库连接测试用Connection connection sqlSession.getConnection();System.out.println(connection);}catch(Exception e){e.printStackTrace();}finally{//如果sqlSession不等于null则代表创建成功if(sqlSession !null){//如果typePOOLED,代表使用连接池close则是将连接回收到连接池中//如果typeUNPOOLED,代表直连close则会调用Connection.close()方法关闭连接sqlSession.close();}
}
以上我们就完成了初始化sqlSessionFactory以及得到sqlSession对象的一些操作