MyBatis核心SqlSessionFactory的创建
程序员文章站
2022-07-15 11:00:29
...
SqlSessionFactory是每个MyBatis应用的核心
其实现方式有两种,使用配置文件或使用JAVA编码。
1.配置文件实现
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml" /> </mappers> </configuration>
使用时利用下面代码进行初始化
String resource = "org/mybatis/example/Configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
2.使用编码实现
DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",
"jdbc:mysql://localhost/mybatis?userUnicode=true&characterEncoding=utf8", "admin", "123456");
Environment environment = new Environment("test", new JdbcTransactionFactory(), dataSource);
Configuration configuration = new Configuration(environment);
configuration.addMapper(TestDao.class);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
生命同期问题
SqlSessionFactoryBuilder 是用过即丢,其生命周期只存在于方法体内
SqlSessionFactory 单例,存在于整合应用运行时
推荐阅读
-
JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识
-
解析ajax核心XMLHTTPRequest对象的创建与浏览器的兼容问题
-
Mybaits 源码解析 (二)----- 根据配置文件创建SqlSessionFactory(Configuration的创建过程)
-
结合Mybatis源码说说sqlSession创建流程和从中用到的一些设计模式
-
Spring与Mybatis整合 将SqlSessionFactory的创建交给spring完成
-
mybatis plus源码解析(一) ---基于springboot配置加载和SqlSessionFactory的构造
-
**Mybatis和Spring整合的时候 sqlSessionFactory出问题了!!求指点**
-
MyBatis核心SqlSessionFactory的创建
-
MyBatis源码分析之——配置解析创建SqlSessionFactory的过程
-
ssm框架集成时,在spring配置文文件中集成mybatis时,在sqlSessionFactory中的属性configuration配置日志出错