mybatis源码分析2 - SqlSessionFactory的创建

1 主要类

初始化mybatis的过程,其实就是创建SqlSessionFactory单例的过程。下面是一个简单的初始化例子。

String resource = "main/resources/SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

初始化流程大致分为如下几步

  1. mybatis读取全局xml配置文件,解析XML中各个节点元素
  2. 将节点元素键值对,设置到Configuration实例的相关变量中
  3. 由Configuration实例创建SqlSessionFactory单例对象

我们先来分析初始化过程中涉及的主要类

1.SqlSessionFactoryBuilder:用来创建SqlSessionFactory实例,典型的builder链式创建模式。
2.XMLConfigBuilder:主要有三个作用:

- 解析XML文件,生成XNode
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
在使用MyBatis-Plus时,出现“property 'sqlSessionFactory' or 'sqlSessionTemplate' are required”的错误提示,通常是因为未正确配置MyBatis-Plus所需的SqlSessionFactorySqlSessionTemplate。 要解决此问题,首先需要确保在配置文件(如application.properties或application.yml)中正确配置了SqlSessionFactorySqlSessionTemplate。以下是两种常见的配置方式: 1. 使用SqlSessionFactory配置: 在配置文件中添加如下内容: ``` mybatis-plus.mapper-locations=classpath*:mapper/*.xml spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/db_example spring.datasource.username=your_username spring.datasource.password=your_password ``` 其中,“mybatis-plus.mapper-locations”指定了Mapper文件的路径,”spring.datasource.*”配置数据库连接信息。 2. 使用SqlSessionTemplate配置: 在配置文件中添加如下内容: ``` mybatis-plus.mapper-locations=classpath*:mapper/*.xml mybatis-plus.configuration.map-underscore-to-camel-case=true ``` 其中,“mybatis-plus.mapper-locations”指定了Mapper文件的路径,“mybatis-plus.configuration.map-underscore-to-camel-case”配置了下划线命名转驼峰命名的规则。 在以上配置完毕后,需要确保项目中依赖的版本与配置文件中的版本相匹配。例如:MyBatis-Plus的版本与MyBatis的版本应保持一致。 如果以上步骤都正确配置了,但仍然出现错误提示,可能是因为代码中引用的Bean名称与配置文件中的名称不匹配。请检查相关代码中是否正确引用了配置文件中的SqlSessionFactorySqlSessionTemplate bean。 如果以上解决方法仍然无效,可能是因为缺少相关的依赖项。请确保项目中已正确引入了MyBatis-Plus的依赖项,并重新构建和部署项目。 希望以上解答对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢杨易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值