Springboot 集成 Mybatis
记录一下半小时快速集成ssm框架
快速集成ssm当然是idea配合springboot方案,灵活的配合maven,还能增减控件。
作者发稿使用Springboot和Mybatis均为最新maven版本
Springboot版本2.0.6 Mybatis1.3.2 Mysql 8.0.11 druid1.1.0
1.创建工程
idea -> new project -> Spring Initalizr
勾选Web,SQL中的Mybatis,Mysql;然后就是一路的next
贴一下pom文件
2.配置yml文件
name: 随意
type:连接池类型
特别注意,8.x版本的mysql包名改了。同时需要注意第一次安装数据库时区的问题。
mybatis配置 对应 mybatis-config.xml文件
3.按照表明创建4个层级的代码(最少)
{底层的Entity - Dao层 Service层 Service实现类}
可以用mapper生成工具 - 自动生成mapper.xml 生成Dao 生成Entity
调用顺序
controller->service->serviceImpl自动 ->dao
->(daoImpl 手动链接mapper)需要链接Base系列(自行写入)
->Mapper.xml(自动连接数据库)
{如果是自动选择,则id与方法名相同}
注解
Controller
ServiceImpl
甚至不写名字也可以,因为只有一个实现类
Dao
Application
这里使用的是扫描包的方式,换一种方法是去掉扫描,
在Dao层用上@Mapper注解
在需要的事务的地方 5种事务级别
@Transactional(isolation = Isolation.DEFAULT)
mybatis添加分页控件
com.github.pagehelper springboot版
yml文件配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
serviceImpl层实现
public List<Member> selectByPrimaryKey(Integer keyid){
PageHelper.startPage(1, 1);
return memberDao.selectByPrimaryKeyValue(keyid);
}
springboot中嵌入mybatis原理
单库配置:
引入之后,默认情况下,Spring Boot会自动为我们配置好一个DataSource,它会在classpath中搜索数据库的jar包,如果找到了,就会自动配置一个内存数据库的DataSource。
如果在application.yml或application.property中指定了spring.datasource.*的相关配置参数,Spring Boot就会使用该配置创建一个DataSource。
然后会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。会自动扫描你的Mappers,连接到SqlSessionTemplate,并注册到Spring上下文中。
如果你有耐心看到这里,我现在这里感谢,对于新手走过的路很是理解,我也是从移动iOS端转做java后端。其实业务甚至框架等第三方调用,都不是阻碍我们前进的原因,更多是因为项目配置问题,久久不能启动或生效,这才是最大的敌人。