Mybatis入门及入门案例

一、mybatis是啥?

半自动orm映射框架,持久层框架,与数据库进行操作

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
持久层?程序通过Dao/Mapper(和数据库交互的)层{Controller控制层 Service业务层 }
持久化?–将内存数据存在磁盘中 计算机在计算时,数据都在内存中,如果断电则数据清空,
持久层?程序通过Dao/Mapper(和数据库交互的)层{Controller控制层 Service业务层 }
持久化?–将内存数据存在磁盘中 计算机在计算时,数据都在内存中,如果断电则数据清空,
Mybatis的orm并不完全,只完成了结果集的映射,但是sql需要手写,所以mybatis也称为半自动orm映射框架

在这里插入图片描述

二、Mybatis框架

1. 核心文件

在这里插入图片描述

2. 配置文件

注意:
namespace的配置
还有id不要写错
在这里插入图片描述

3. 关于底层源码的那些事

在这里插入图片描述

1.要学会复制路径噢

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

在这里插入图片描述

在这里插入图片描述

2、 上面过程的总结

在这里插入图片描述

2. mybatis入门的那些事

1.BeforeEach 这个是单元测试提供的一个注解

知识点一:@BeforeEach //测试api的工具方法 测试api中的注解 在执行@Test方法前,会提前调用
知识点二:向上抽取(成为成员变量)封装

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

2.参数封装

知识点一:参数封装(能用对象,就用对象)

  1. 封装为实体对象 user对象
  2. 更为常用的方式 Map集合
  3. 如果传递的数据有多个,则可以使用注解@Param(“sex”) String sex 封装为Map.

知识点二:传递数据是对象 通过#{属性}直接获取
知识点三:为啥要封装?

可能会出现的问题:
在这里插入图片描述

3.案例:查询多个条件时

解决办法:

第一种:封装成对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第二种:

3.封装成Map集合
3.1 方式一

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

在这里插入图片描述

3.2 方式二 通过注释(在接口里的抽象方法写)封装成Map集合

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

4. 排序

知识点:#{}有预编译的功能,防止sql注入,会自动添加一对“” 当以字段为参数时,${ } 的用法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 用户入库

知识点:

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

6. 查询 age>18 and age < 100 的用户数据–区间查询

规则:如果不能用对象查询,则一般使用Map集合
知识点:
出现了的重复对象,那就不可以封装成对象,封装成map集合(普通集合方法,注释方法)
转义字符

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

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

7. 批量删除数据

在这里插入图片描述

7. 1.包装成数组

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

在这里插入图片描述

7. 2 封装成map

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

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

7. 3 封装成list

在这里插入图片描述

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

遇到的报错
Error building SqlSession.

The error may exist in mybatis/mappers/mappersUsers.xml

Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is ‘mybatis/mappers/mappersUsers.xml’. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.jt.mapper.DemoMapperUser.deleteByids. please check mybatis/mappers/mappersUsers.xml and mybatis/mappers/mappersUsers.xml

蓝色字体标注的 是接口配置文件中 id的属性 赋值重复了 应该检查是否给对

8. 用户入库事务提交
8.1 方式一:

在这里插入图片描述

8.2 方式二;

在这里插入图片描述

9. 查询名字中带有精且按年龄排序
9.1 方式一:

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

9.2 方式二;

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

在这里插入图片描述

10 Mybatis模糊查询

1.“%”#{属性}“%”
2.#{属性} 取值时 %属性%

10.1 方式一:

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

在这里插入图片描述

10.2 方式二;

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

三、案例:

(1)查询sex = 女 and age >18
① 知识点:mybatis是单值传输 所以需要封装 封装的方法有:对象,集合
(2)根据字段排序
① 知识点:根据年龄排序,因为#{数据}防止sql注入,会自动给数据添加“”,所以给字段可以采用${数据},但是一般不推荐这种的方法,会出现sql语句注入的问题
(3)用户入库
① 知识点:事务提交(两种方法)
(4)查询 age>18 and age < 100 的用户数据–区间查询
① 知识点:如果不能用对象查询,则一般使用Map集合、转义字符
(5)批量删除数据
① 知识点:可以封装成数组、集合、map
(6)转义标签
> < & 通用:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值