JavaWeb-3MyBatis相关

JavaWeb-3MyBatis相关

1. MyBatis简介(很多要配置的)

1.1 简介

image-20230109212111130 image-20230109212151210

1.2 JDBC缺点

image-20230109212453710

1.3 MyBatis简化

image-20230109212610077

2. MyBatis快速入门 —— 以一个需求为例

2.1 MyBatis快速入门,查询user表中所有数据

image-20230109212758182 image-20230109213222252 image-20230109213341970 image-20230109213632831

官网继续复制代码,编写一个MyBatisDemo

image-20230109213950468

2.2 解决SQL映射文件的告警提示

image-20230109214131442

3. Mapper代理开发

3.1 目的

上面的那种快速入门方式,还是要解决硬编码的一些问题

image-20230109214453381

3.2 使用Mapper代理

image-20230109214540470
  • 第一步
image-20230109214807815
  • 第二步
image-20230109214854671
  • 第三步(参数和返回值类型一样)
image-20230109214948487
  • 第四步,小改路径
image-20230109215013064

3.3 编码(重点,实现接口)

image-20230109215111333

3.4 简化映射文件的加载

image-20230109215355994

4. MyBatis核心配置文件mybatis-config.xml

  • 配置多个,可以链接不同的数据库,default切换
image-20230109215633629
  • 别名(可以包扫描)
image-20230109215843771 image-20230109215902431 image-20230109215949688
  • xml的顺序约束!!!!!

5. 配置文件完成增删改查

5.1 需求说明

image-20230109220117240

条件查询,删除多个(批量删除)

image-20230109220157900

5.2 MyBatisX插件

image-20230109220348723 image-20230109220518125 image-20230109220545321

5.3 查询所有&结果映射(数据库列名和属性名不一致)

5.3.1 查询所有数据

image-20230109220854395

sql语句怎么写、有没有参数、完成了后返回什么值

5.3.2 数据库的名称,和类的名称可能对不上,比如hello_world和helloWorld

  • 起别名,太麻烦了

  • 灵活解决方案,resultMap

image-20230109222537678

5.4 查看详情(根据id来进行查询)

5.4.1 设置参数(参数占位符、parameterType可选、特殊字符处理CDATA区和转义字符)

查看某一条数据的详细信息,根据id来进行查询

parameterType好像不用写?

参数占位符,使用#{}替代${},可以避免sql注入问题

5.4.2 特殊字符处理

image-20230109223401615

5.5 查询-条件查询

5.5.1 查询-多条件查询

image-20230109223816259 image-20230109223823534

参数有三种不同的接收方式

  • 第一种方式

注意需要手工处理一下这个百分号的地方

image-20230109230054484
  • 第二种方式

对象的属性的名称,要和参数占位符都一样

image-20230109231005222
  • 第三种方式
image-20230109231117250

5.5.2 查询-多条件-动态条件查询(关键,假设3个条件,用户可以输入0 1 2 3个,if where标签)

用户有可能只输入一个条件,因为拼接条件的时候用的是and,程序太不灵活了

image-20230109231335033
  • if的强大使用,然而有and拼接问题
image-20230109232113419

然而,如果只根据companyName进行查询,那么这个and就给拼上去了,SQL语法就直接错了

解决:

  1. 恒等式,where 1=1 and xxxx and xxxx,这样格式就全一样了
  2. where标签
image-20230109232626129

5.5.3 查询-单条件-动态条件查询(多个条件中选择一个)

image-20230109223648652 image-20230109232848325

多个条件,只能用其中一种!!!!!!!!!!

5.6 添加

5.6.1 最基础的添加

image-20230109233603598

增删改的时候,要commit

1
sqlSession.commit()

5.6.2 添加——主键返回(TODO多主键怎么办?)

image-20230109234530680 image-20230109234627841

5.7 修改(update)

5.7.1 修改全部字段

image-20230109234725994

可以返回影响的行数

5.7.2 动态修改

image-20230109234926110

set也可以用标签,一个update功能就很通用

image-20230109235405755

5.8 删除

5.8.1 删除一个

image-20230109235531403

5.8.2 批量删除(复选删除)

id数组,一次性的接收过来

image-20230109235709967

6. MyBatis参数传递

image-20230110000258548

多个参数,param注解

7. 注解,只适合简单语句

image-20230110000949230

JavaWeb-3MyBatis相关
http://example.com/2023/01/08/develop/java/javaweb/JavaWeb-3MyBatis相关/
作者
Curious;
发布于
2023年1月8日
许可协议