使用mybatis方案一:使用原始包org.mybatis:mybatis

本方式试图仅通过mybatis官网提供的文档来学习使用mybatis框架,但最后仍然不得不学习了视频教程才最终成功。即便如此,期间仍然遇到一些官方文档和教学视频都没有明确的问题,靠搜索答案的方式才逐渐解决。

此方法引入的核心包是org.mybatis:mybatis(官网上提供的原始包),下面是总结出的搭建过程。

1. 通过idea创建一个尽量空的springboot工程(SpringInitializer-maven-Java8),然后把java.version改为合适的版本。可以看到现在已经引入的依赖:

org.springframework.boot:spring-boot-starter
org.springframework.boot:spring-boot-starter-test

2. 手动引入org.mybatis:mybatis及驱动和连接池

org.mybatis:mybatis
com.oracle.database.jdbc:ojdbc8
com.alibaba:druid

3. 完成controller、service、serviceImpl、mapper(@mapper||@reposity)、entry的创建,注意添加相关的注解,将相关的类放入容器。

但此时无论如何都没法找到定义的mapper接口类。

4. 创建mybatis-config.xml配置文件,定义好类型别名[包]<typeAliases>、数据源环境参数<environments>、mapper接口[目录]<mappers>,还可以引入外部参数文件,将数据源参数放到另一个文件中,方便修改配置<properties resource="druid.properties" />

这个时候此配置文件没有被使用,mapper接口仍然不会被找到。

5. 使用mybatis-config.xml创建类失败了(跳过吧)

6. 根据IOC原理,可以将mybatis里的配置放在spring-config.xml中,并在其中通过配置的方式生成相关的bean:

dataSource(class=com.alibaba.druid.pool.DruidDataSource)
sqlSessionFactory(class=org.mybatis.spring.SqlSessionFactoryBean)
null(class=org.mybatis.spring.mapper.MapperScannerConfigurer)

要保证配置正确。

7. 在测试类的方法里注入controller组件,调用其方法即可返回数据。

8. 创建了应用的主类XXAppliation,相关注解也加上了,但不能运行,找不到mapper接口类;主类加上MapperScan包扫描,又找不到sqlSessionFactory实例,说明spring-config.xml中的bean没有生效。但测试为什么可以执行成功,并且mapper接口文件去掉@mapper注解也可以正常测试执行。这中间有什么区别,没弄清楚。总之,试图随心所欲搭建工程失败了,暂时只能按照引导创建工程了。

最后注意事项:

spring-config.xml里的扫描的包,要包含controller包,也就是controller包的上级包,不然无法注入。测试类应该是public的,表明是主类,然后其中的方法才能运行(因为拷贝粘贴造成不一致,好长一会都不知道为什么测试方法怎么不行运行了)

留下的问题以后再完善。下一篇直接使用org.mybatis.spring.boot:mybatis-spring-boot-starter直接搭建似乎顺利很多,不需要自己去引入太多的包依赖,希望顺利。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值