mybits相关知识点

这里写目录标题

  • 入门
    • 第一个程序
      • 步骤
      • 配置sql,建立数据库连接
    • jdbc
    • 数据库连接池
      • 简介
      • 连接池的切换
      • 总结
    • lombok
  • Mybatis基础操作(注解)
    • 准备工作
      • 类型对应
    • 删除
      • 简介
      • 具体代码
    • 预编译
      • 简介
      • 优点
        • 优点1
        • 优点2
      • 预编译的实现
      • 总结
    • 新增
      • 简介
      • 具体代码
    • 新增(主键返回)
    • 更新
      • 简介
      • 具体代码
    • 查询(根据ID)
      • 简介
      • 具体代码
      • bug
        • 简介
        • 解决方案
        • 着重采用方案三
    • 查询(根据条件)
      • 简介
      • 具体代码
  • 基础操作(xml映射文件)
    • 简介
    • 配置
    • 总结
  • 动态SQL
    • 问题分析
    • if标签
      • 概要
      • 补充
      • 总结
    • foreach标签
      • 简介
      • 案例,一般用于批量操作
    • sql include标签
      • 简介
    • 小结

入门

第一个程序

步骤

mybits相关知识点_第1张图片
mybits相关知识点_第2张图片
mybits相关知识点_第3张图片
注意这里主方法是一个接口,上面要加一个Mapper注解,这样就可以系统生成一个实例化对象,并放入IOC池中,成为bean
mybits相关知识点_第4张图片
通过依赖注入的方式,实例化接口,激活接口,之后在测试类中调用接口方法,得到返回值,并通过stream流遍历

配置sql,建立数据库连接

mybits相关知识点_第5张图片

jdbc

mybits相关知识点_第6张图片
mybits相关知识点_第7张图片

数据库连接池

简介

mybits相关知识点_第8张图片

连接池的切换

mybits相关知识点_第9张图片
mybits相关知识点_第10张图片

总结

mybits相关知识点_第11张图片

lombok


用于简化实体类的代码量

效果:
mybits相关知识点_第12张图片

Mybatis基础操作(注解)

准备工作

类型对应

mybits相关知识点_第13张图片
类名与表名保持一致

删除

简介

mybits相关知识点_第14张图片

具体代码

mybits相关知识点_第15张图片
在mapper包下的接口中,定义一个方法,因为是在接口中,所以是抽象方法,没有方法体
之后在方法上面加一个注解,如果是删除,就加删除注解@Delect(“”)
引号里面写具体的sql语句
这里注意有一个变量定义方法:#{id},这里会把抽象方法的参数传入进来

mybits相关知识点_第16张图片
之后去测试类当中,依赖注入,测试调用即可

预编译

简介

mybits相关知识点_第17张图片
传递给数据库的是一个待填入数据的占位符,是一个问号

优点

优点1

mybits相关知识点_第18张图片

优点2

更加安全

例子
sql注入,对于不是预编译的代码,会采用拼接的方式,这样就有bug,可以通过填入的数据更改代码逻辑,如下
mybits相关知识点_第19张图片
mybits相关知识点_第20张图片
经过数据拼接,数据逻辑被更改,所以不安全,而预编译就不会有这样的bug

预编译的实现

mybits相关知识点_第21张图片
一般采用第一个

总结

mybits相关知识点_第22张图片

新增

简介

mybits相关知识点_第23张图片

具体代码

在这里插入图片描述
在接口中,当参数有多个时,可以用一个实体类进行封装,之后在注解的语句中,直接#{类的属性值}

而在测试类中,需要定义该类的对象,之后对该对象赋值,并调用接口的对应方法,如下图
(注意上方还有一个依赖注入,用来创建接口对象)
mybits相关知识点_第24张图片

新增(主键返回)


用于添加完数据之后,返回一个主键

代码
mybits相关知识点_第25张图片
这是接口中,在接口上方加入注解 true表示启用注解,id表示将主键封装到对象的id属性中


(注意上方还有一个依赖注入,用来创建接口对象)
之后在测试类中可以输出对象的id,也就是主键,

因为接口包是用来跟数据库联系的,所以接口中只能完成与数据库的联系操作,其他操作大部分放在册数类中进行
而,测试类中利用接口调用方法的操作,实际上可以理解为上传数据至数据库

更新

简介

mybits相关知识点_第26张图片

具体代码

在这里插入图片描述
接口中与添加操作差不多,都是利用实体类进行编码

mybits相关知识点_第27张图片
(注意上方还有一个依赖注入,用来创建接口对象)
测试类中,也是创建类的对象,利用对象赋值,这样数据就被封装进了对象里,再利用接口调用方法

查询(根据ID)

简介

mybits相关知识点_第28张图片

具体代码

mybits相关知识点_第29张图片
这是接口中的代码,直接创建一个方法,方法的返回值类型是一个实体类,参数是id值,意思为将查询到的数据封装到一个对象当中

mybits相关知识点_第30张图片
(注意上方还有一个依赖注入,用来创建接口对象)

这是测试类,创建测试方法之后,调用接口方法返回一个对象,直接输出该对象。(之所以可以直接输出该对象,是因为该对象的类在定义时有toString方法,所以直接输出对象,可以输出可读信息)

bug

简介

mybits相关知识点_第31张图片
当数据库中的字段名与实体类的属性名不一致的时候,无法完成自动封装

解决方案


具体代码
mybits相关知识点_第32张图片
mybits相关知识点_第33张图片

着重采用方案三

适用于数据库的字段名与实体类的属性名,区别在于下划线
例如 数据库字段名:user_name 实体类属性名:userName

mybits相关知识点_第34张图片
直接在resources下 application里配置打开自动转换开关,设置为true即可

查询(根据条件)

简介

mybits相关知识点_第35张图片

具体代码

接口方法
mybits相关知识点_第36张图片
这里采用一个拼接函数,可以将字符串拼接起来,防止#{}出现在引号当中,引起错误

因为查询到不止一条记录,所以返回不止一个对象,所以要用一个list<类>集合来保存返回值,参数是查询的条件

mybits相关知识点_第37张图片
(注意上方还有一个依赖注入,用来创建接口对象)

测试类当中,直接传入参数即可

基础操作(xml映射文件)

简介

配置

mybits相关知识点_第38张图片
在resources文件下创建一个包,右键选择Directory 之后不要用点分隔,而是用/,如上图


之后右键创建文件,文件名与接口类的名字保持一致

进入该文件之后,要先去官网复制下来一段配置文本,直接搜“Mybatis中文网 找到配置文件即可”(入门 然后下滑,找到如下图标注的部分即可)mybits相关知识点_第39张图片

mybits相关知识点_第40张图片
再之后按照如上图所示的格式配置sql语句即可

注意先写一个《mapper》
之后在namespace后面是接口的全路径(一般只需配置一次,因为mapper标签在一个xml文件里只有一个,他是最大的标签),在id后面是接口的方法名,在resultType后面是返回值类型,当返回值为一个实体类时,要写全路径

里面sql语句跟注解写sql一样

以下是关于查找全路径的快捷键
mybits相关知识点_第41张图片

这里有一个小技巧
mybits相关知识点_第42张图片
对于接口方法,选中方法名,直接alt+回车,就可以自动在xml文件里生成相关功能的标签(前提是方法名要有其功能相关的单词,例如本图中的update),并且写好了id,如下图
mybits相关知识点_第43张图片
无返回值,就不用再去写其他标签

总结

mybits相关知识点_第44张图片
包的名称要跟接口一致,而不是真正放在同一个包下

动态SQL

问题分析

mybits相关知识点_第45张图片
因为我们的sql语句,对于某些参数设置死了,用户必须去对这些参数赋值,否则会查询不到,或者更新空值等问题
所以需要动态的进行sql语句的控制

if标签

概要

mybits相关知识点_第46张图片

在xml文件中,先ctrl+alt+v 格式化一下sql代码,之后将where改成where标签,里面每一段sql都用if标签判断,test=“” 引号里面写判断条件
mybits相关知识点_第47张图片

补充

mybits相关知识点_第48张图片
在update语句中,要用逗号拼接,所以这里用set标签,会自动去除标签,注意只能自动去除,不能自动添加,所以在编写时,要加上逗号(以及上面where标签内sql语句要加上and)
mybits相关知识点_第49张图片

总结

mybits相关知识点_第50张图片

foreach标签

简介

案例,一般用于批量操作

mybits相关知识点_第51张图片
xml文件

mybits相关知识点_第52张图片
接口方法

mybits相关知识点_第53张图片
测试类

sql include标签

简介

mybits相关知识点_第54张图片
用于提取出重复性强的代码部分,效果相当于java编码中的方法

具体代码
在这里插入图片描述

在这里插入图片描述

小结

mybits相关知识点_第55张图片

你可能感兴趣的:(数据库,mysql)