// 1、读取配置文件
/**
* 读取配置文件的方式
* 1、绝对路径:从磁盘位置读取配置文件,如:F:/mybatis/mybatis-config.xml,缺点可能别的机器没有F盘
* 2、相对路径:相对路径从项目的src目录下开始,如:src/main/mybatis.xml,缺点:如果项目是web工程,一旦部署src目录消失
* 3、使用类加载器(推荐):只能读取类路径下的配置文件
* 4、使用ServletContext对象的getRealPath(推荐):能得到当前应用部署的绝对路径
*/
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
// 2、创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
/**
* 创建工厂使用了构建者模式:builder.build(in);
* 优势:将对象的创建细节隐藏,使使用者直接调用该方法获取对象
*/
SqlSessionFactory sqlSessionFactory = builder.build(in);
// 3、使用工厂生产SqlSession对象
/**
* 生产sqlSession使用了工厂模式:sqlSessionFactory.openSession()
* 通过工厂模式创建对象的好处:解决了硬编码问题,
* 直接创建对象的缺点,会降低代码的灵活程度,当需要创建别的对象时,这需要进入代码中进行修改;
* 优势:解耦(降低类之间的依赖关系)
*/
SqlSession sqlSession = sqlSessionFactory.openSession();
// 4、使用SQLSession创建Dao接口的代理对象
/**
* 创建mapper实现类使用了代理模式:sqlSession.getMapper(UserDao.class);
* 优势:不修改源码的基础上对已有方法增强
*/
UserDao userDao = sqlSession.getMapper(UserDao.class);
// 5、使用代理对象执行方法
List<User> users = userDao.findAllUser();
for (User user: users
) {
System.out.println(user);
}
// 6、释放资源
sqlSession.close();
in.close();
3、Mybatis 中用的设计模式
未经允许不得转载:搜云库技术团队 » 3、Mybatis 中用的设计模式
相关推荐
- 第二版:互联网大厂面试题,92份 PDF,累计 3625 页!
- 蘑菇街、滴滴、淘宝、微信的组件化架构解析,附Demo和PDF
- Mybatis源码分析 - 九种设计模式总结
- MySQl性能优化,MySQl索引优化,MySQl执行计划使用实战经历
- 如何设计网址短链接生成服务,网址缩短服务,短URL生成服务
- Nginx实现负载均衡配置,分发策略
- JVM最多支持多少个线程?如何计算JVM线程数?
- 程序该如何优化?怎么做性能优化?性能优化的原则?
- SpringBoot Jar 可执行原理,源码分析SpringBoot Jar启动
- 为什么要读源码,如何阅读源码,Spring源码如何读,业务源代码如何读
- StringBuilder为什么线程不安全,StringBuilder源码分析
- JDK8 Stream 数据流效率分析,JDK8 Stream 性能如何
- 如何计算并发用户数,PV计算公式,TPS估计
- Tomcat性能调优,JVM的性能调优,总结文档
- 生产上MySQL慢查询优化实战,SQL优化实战
- SpringBoot 中 logback日志配置使用