当前位置:网站首页>使用SqlSessionFactory工具类抽取
使用SqlSessionFactory工具类抽取
2022-07-30 02:01:00 【陈毓辰】
SqlSessionFactory工具类抽取
在写Servlet的时候,因为需要使用MyBatis来完成数据库的操作,所以对于MyBatis的基本操作就出现了一些重复的代码,如下:
获取sqlSessionFactory对象
String resource = “mybatis-config.xml”;
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
获取sqlsession对象
SqlSession sqlSession = build.openSession();
获取mapper
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
过多的重复代码会给后期造成一个影响:
- 重复代码不利于后期的维护
- SQLSessionFactory工厂类进行重复创建
如何优化:
- 将重复代码抽取成工具类
- 对指定代码只需要执行一次可以使用静态代码块
代码如下:
public class SqlSessionFactoryUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
//静态代码块会随着类的加载而自动执行,且只执行一次
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
}
工具类抽取以后,以后在对Mybatis的SqlSession进行操作的时候,就可以直接使用
SqlSessionFactory sqlSessionFactory =SqlSessionFactoryUtils.getSqlSessionFactory();
这样就可以很好的解决上面所说的代码重复和重复创建工厂导致性能低的问题了。
边栏推荐
猜你喜欢
随机推荐
【MySQL总结】
实习经历梳理
Running a Fabric Application
LeetCode 2348. Number of all-zero subarrays
解决vscode的Network不显示问题
tcp ip
LeetCode Question of the Day (874. Walking Robot Simulation)
超详细的MySQL基本操作
STM32L4R9ZIY6PTR STM32L4 high-performance embedded-MCU
Sublime does background transparency and column editor
go bidirectional streaming mode
利用ESP32构造一个ZIGBEE的网络发送转接
「MySQL」- 基础增删改查
Postgresql daily operation and maintenance skills, suitable for beginners
超详细的MySQL三万字总结
jar包解压后再打包为jar
uni-app如何配置APP自定义顶部标题栏
Linux Jenkins查找缓存文件及删除 (2022-07测试可用)
sqlserver 多行合并成一行
新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间




![[Microservice~Nacos] Nacos service provider and service consumer](/img/b7/47ecd6979ccfeb270261681d6130be.png)



