黑马程序员MyBatis总结(二、配置文件完成增删改查以及参数传递)

本文为自我学习使用,如转载需本人同意
文章只记录用过的技术和插件等

MyBatisX插件

在这里插入图片描述
在这里插入图片描述
1.蓝色小鸟和红色小鸟可以相互跳转
在这里插入图片描述
在这里插入图片描述

2.能自动生成statement
在这里插入图片描述
Generte statement
在这里插入图片描述
只需要自己输入sql语句即可,当然resultType能够使用别名

单元测试unit

什么是单元测试:
对某一功能代码做测试
一般将白盒测试用于单元测试
白盒测试就是我们知道代码逻辑,对所有的可能情况进行测试

unit依赖

在这里插入图片描述

创建测试类

在这里插入图片描述

c!c](https://img-blog.csdnimg.cn/c173628ec9744e3dbda605733dc2d9ee.png)

在这里插入图片描述

解决实体封装不上,映射对应不上问题

我们在查询的sql结果中发现有的数据明明存在但结果为null
在这里插入图片描述
这是因为实体中的属性名称和数据库属性名称不一样

解决方法1:起别名

类似这种
在这里插入图片描述
也可以使用sql片段,像下面这种
在这里插入图片描述
不过这种方法不灵活,不是直接绑定这些属性

解决方法2:resultMap

配置两边属性映射关系
在这里插入图片描述
更改resultType为resultMap,将上面的值放入即可
在这里插入图片描述

条件查询说明

如果单个参数是可以直接写的,如:
在这里插入图片描述
如果这么写
在这里插入图片描述
报错:
在这里插入图片描述

多个参数,就必须使用@Param(“对应sql变量名称”)注解:
在这里插入图片描述
其中param参数为:
在这里插入图片描述
中#{}里的值

条件查询

sql属性不需要变,下面写法存在一定问题,看下面动态sql

参数条件查询

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

实体类条件查询

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Map键值对条件查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态条件查询

在这里插入图片描述
如果我们在上面多条件查询中将id改为null,也就是我只想查询中国,但是会出现找不到的情况
在这里插入图片描述
因为sql也会匹配id为null的,如果我们能判断id为不为null而决定匹不匹配id,这就是动态条件查询

if

例如:
在这里插入图片描述
在这里插入图片描述

多出and问题

这样写会存在问题,比如我们id为空,而countryName不为空,则会多一个and:
在这里插入图片描述

解决方法1:使用恒等式1=1

在这里插入图片描述

解决方法2:使用where包裹

在这里插入图片描述

choose(when,otherwise)

直接看ppt
在这里插入图片描述
也可以使用where包裹
在这里插入图片描述

保存数据的注意点

在这里插入图片描述

开关Mybatis事物

Mybatis开启了事务,不提交事物会回滚
在这里插入图片描述
所以得手动提交事务
在这里插入图片描述
如何开启或关闭事物,false为开启事务。ture为关闭事务
在这里插入图片描述

保存数据并返回

在这里插入图片描述
keyProperty为主键

修改

修改全部字段

在这里插入图片描述

修改动态字段

在这里插入图片描述

删除

删除一个

在这里插入图片描述

批量删除

在这里插入图片描述

collection为集合
item为元素
separator为分割符
open是开
close是闭

在这里插入图片描述
mybatis会将array自动封装成一个map,map的键为“array”,值为array的值
所以在遍历时要写:
在这里插入图片描述
或用param改变默认key名称
在这里插入图片描述

参数传递

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

I Am Rex

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

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

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

打赏作者

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

抵扣说明:

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

余额充值