023 案例11-集成Mybatis
11.SpringBoot集成Mybatis
a.添加mybatis依赖,MYSQL驱动
光标放在下边位置新建springboot时,后边new module 的module file location路径就会自动是你的module name
没有在pom中写版本号但是右侧看maven也是有的,默认继承了父类的
ctrl点这里,看看父亲是不是
如果不想继承父亲,爷爷,就可以在如下两处加,比如5.1.9
mybatis需要写版本号,因为他是单独的,他的爷爷没有注明版本号
024
11.SpringBoot集成Mybatis
b.使用MyBatis提供的逆向工程生成实体bean,映射文件,DAO接口
power designer
create model-创建physical
点击下边图标这个创建表
再点击如下
生成脚本文件如下
025 mybatis逆向工程2
两步:
步1:在pom添加编译插件,如下
步2:新建GeneratorMapper.xml
反向生成实体类,接口
jdbcConnection 修改正确的mysql密码,如果连接的不是本地数据库,localhost改成对应IP地址
javaModelGenerator
sqlMapGenerator 映射文件
javaClientGenerator
table标签:表和实体类对应的关系
要保证如下驱动在目录下
双击下边东东,自动生成
成了,如下
026 mybatis逆向工程-3
ORM框架,对象关系映射
object related mapping
hibernate现在用较少,HQL
mybatis,半ORM框架
027 mybatis逆向工程-4
有无_决定了生成类时候的命名,约定俗成的规则
029 案例12-集成Mybatis
pom中添加mysql依赖
用@注入:Controller,,
ServiceImpl加上@Service注解,说明这个业务层可以被Controller层调用,
StudentMapper.java加@Mapper ,有多少个DAO就得在对应的文件上加@Mapper
我们mysql驱动是8以上,需要加个cj
报错如下,没有找到selectByPrimaryKey
因为java文件夹下只能编译class文件,如下图,所以xml文件未编译
所以需要在pom的build标签下边,手动指定文件夹为resources
<!--手动指定文件夹为resources-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include> <!--**代表子包-->
</includes>
</resource>
</resources>
然后就有了StudentMapper.xml如下
报错 Result Maps collection already contains value for com.bjpowernode.springboot
由于多次用了逆向工程generate,把自动生成的model和mapper文件夹删除了再重启idea,再自动逆向工程generate就可以了
030 案例14-集成Mybatis
每个都加@注入好麻烦,今天讲个好东东
以下前面已经讲过
如下GeneratorMapper中配了几张表,到时候就会逆向自动生成对应几个Mapper和Model
注意所有代码都在application同级或下级目录下创建,如下图
避免同上节课一样,这次不在StudentMapper加注解@Mapper了,
再application类上边加@MapperScan
(basePackages = “com.bjpowernode.springboot.mapper”)//开启扫描Mapper接口的包以及子目录
031-解决课堂问题
启动类,basePackages可以省略吗,
@SpringBootApplication//开启spring的配置,他会扫描所有spring的配置
@MapperScan(basePackages="com.bjpowernode.springboot.mapper")//开启扫描Mapper接口的包以及子目录
可以啊,如下
@SpringBootApplication//开启spring的配置,他会扫描所有spring的配置
@MapperScan("com.bjpowernode.springboot.mapper")//开启扫描Mapper接口的包以及子目录
如下在这里clean项目,再重新启动
032 案例15-Mapper映射文件存放位置
1 新建springboot工程
2 在pom中,配置mysql;MyBatis整合SpringBoot框架的起步依赖;mybatis自动生成插件
3 建立GeneratorMapper.xml
点击逆向生成
4 把src/main/java/com/…/mapper中的StudentMapper移到resouces下边mapper下
5 application.properties中加
#指定MyBytis映射文件的路径
mybatis.mapper-locations=classpath:mapper/*.xml
这样情况下,就不需要再pom中中再指定了
6 这时再把之前的service、web文件夹复制过来
7 启动项目
033-解决课堂问题
034-集成MyBatis总结
续笔记,12-15:SpringBoot集成MyBatis,最主要的是两个注解@Mapper@MapperScan
@Mapper需要在每一个Mapper接口类上添加,作用扫描dao接口
@MapperScan是在SpringBoot启动入口类上添加的,它是扫描所有的包
关于Mapper映射文件存放的位置的写法有以下两种:
1.将Mapper接口和Mapper映射文件存放到src/main/java同一目录下,
还需要再pom文件中手动指定资源文件夹路径resources
2.将Mapper接口和Mapper映射文件分开存放
Mapper接口类存放到src/main/java目录下
Mapper映射文件存放到resources(类路径)
在springboot核心配置文件中指定mapper映射文件存放的位置
035-案例16-SpringBoot支持事务
16.SpringBoot项目下使用事务
事务是一个完整的功能,也叫做是一个完整的业务
事务只跟什么SQL语句有关系?事务只跟DML语句有关系:增删改
DML, DQL, DDL, TCL, DCL
1 新建springboot工程
2 在pom中,配置mysql;MyBatis整合SpringBoot框架的起步依赖;mybatis自动生成插件
3 建立GeneratorMapper.xml
点击逆向生成
036 回顾昨天内容
1 serviceimpl加 @Transactional 事务注解
事务就是你业务里有增删改查操作(即DML操作),只有查无所谓
2 application类,加注解@EnableTransactionManagement //开启事务(可选项)
,不过有没有都行