MyBatis单列工厂的实现
2024-10-07 15:16:21
MyBatis单列工厂的实现
SqlSessionFactoryUtils
package com.utils; 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; /**
* @author: XDZY
* @date: 2018/8/8 14:50
* @description: SessionFactory工厂
*/
public class SqlSessionFactoryUtils {
private final static Class<SqlSessionFactoryUtils> LOCK = SqlSessionFactoryUtils.class; private static SqlSessionFactory sqlSessionFactory = null; private SqlSessionFactoryUtils() {
} public static SqlSessionFactory getSqlSessionFactory() {
synchronized (LOCK) {
if (sqlSessionFactory != null) {
return sqlSessionFactory;
}
String resource = "com/mybatis-config.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
return null;
}
return sqlSessionFactory;
}
} public static SqlSession openSqlSession() {
if (sqlSessionFactory == null) {
getSqlSessionFactory();
}
return sqlSessionFactory.openSession();
}
}
Test
package com.main; import com.mapper.RoleMapper;
import com.pojo.Role;
import com.utils.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession; /**
* @author: XDZY
* @date: 2018/8/8 15:12
* @description: 运行入口
*/
public class TestMain {
public static void main(String[] args) {
SqlSession sqlSession = null;
try {
sqlSession = SqlSessionFactoryUtils.openSqlSession();
RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
Role role = roleMapper.getRole(1L);
System.out.println(role.getRoleName());
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
}
最新文章
- 【读书】PHP程序员要读的书目(不断完善中)
- Unity性能优化(1)-官方教程The Profiler window翻译
- ORA-01502: index &#39;INDEX_NAME&#39; or partition of such index is in unusable state
- SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色 SP2-0611: 启用 STATISTICS 报告时出错
- struts2-(2)HelloWorld
- HDU 1394Minimum Inversion Number 数状数组 逆序对数量和
- [开发笔记]-sqlite数据库在使用时遇到的奇葩问题记录
- C#调用R语言输出图片
- poco vs Boost
- cuda vector addition
- 如何使用XE2及更高版本中提供的自定义皮肤(样式)功能
- 关于SQL语句条件值写中文查不到的问题
- 友盟崩溃日志分析工具 - dSYMTools
- 新概念英语(1-29)Come in, Amy.
- springboot添加邮件发送及压缩功能
- 浅谈Kotlin(四):控制流
- configure编译选项
- SPOJ 694 DISUBSTR - Distinct Substrings
- 51Nod 1384 全排列
- Dapper,大规模分布式系统的跟踪系统
热门文章
- (转)Python中的split()函数的用法
- 二叉排序树思想及C语言实现
- EFCodeFirst 数据迁移问题~
- Slickflow.NET 开源工作流引擎基础介绍-.NET Core2.0 版本实现介绍 (转)
- 对于ESP、EBP寄存器的理解
- [转]Java内存溢出详解及解决方案
- .net core 共享 .Net Forms Authentication cookie
- CSS中的鼠标样式明细
- maven struts2工程StrutsPrepareAndExecuteFilter cannot be cast to javax.servlet.Filter
- 对react vd 性能的理解