为什么要进行Mybatis工具类的封装?
每次我们执行数据库操作都需要做以下操作:
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//通过配置文件创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通过sqlSessionFactory创建核心类 sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//通过sqlSession获取dao接口
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//执行增删改查操作
User user = new User();
user.setUsername("张三");
user.setPassword("123456");
user.setRid(2);
userMapper.addUser(user);
//提交sqlSession
sqlSession.commit();
//关闭sqlSession
sqlSession.close();
执行一次就要写这么多的代码,就算是每次复制粘贴也需要赋值相当多的内容,漏掉一行就可能导致报错, 因此我们通过封装一个MybatisUtil工具类来简化我们的代码以提高我们代码的效率,同时也方便我们去检查维护代码。
封装MybatisUtil工具类
我们新建一个工具类来封装读取配置文件、通过配置文件创建SqlSessionFactory、通过sqlSessionFactory创建核心类 sqlSession、提交sqlSession、关闭sqlSession这几个操作,代码如下:
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 java.io.IOException;
import java.io.InputStream;
public class MybatisUtil {
private static SqlSessionFactory sqlSessionFactory;
static {
//读取配置文件
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream("mybatis-config.xml");
} catch (IOException e) {
throw new RuntimeException(e);
}
//通过配置文件创建SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
public static SqlSession getSqlSession(){
//通过sqlSessionFactory创建核心类 sqlSession
return sqlSessionFactory.openSession();
}
public static void closeSqlSession(SqlSession sqlSession){
//提交sqlSession
sqlSession.commit();
//关闭sqlSession
sqlSession.close();
}
}
至此我们的MybatisUtil工具类就封装好啦,接下来给大家提供一个实例来展示如何调用这个工具类,直接上代码:
public boolean getUserByUsername(String username) {
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Boolean b = userMapper.getUserByUsername(username);
MybatisUtil.closeSqlSession(sqlSession);
return b;
}
相比较封装之前的代码是不是简洁了很多呢,如果有小伙伴不知道该如何配置Mybatis,可以看我的下一篇文章,在下一篇文章将会给大家展示一下Mybatis的一整套配置文件。
求赞求赞,关注一下我吧,各位大官人!!!给大家磕一个!!!