023 案例11-集成Mybatis 开始 -036

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 //开启事务(可选项)
,不过有没有都行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值