引言:
在应用层分层架构中,Web请求的流程通常是:

在Dao层,原生的JDBC太繁琐并且容易出错。
JDBC流程:获取连接、编写带?(占位符)的SQL、创建PreparedStatement、挨个替换占位符(还要自己对参数类型)、处理ResultSet并手动映射到实体类、最后在finally里关闭连接防止内存泄漏。
MyBatis是一款优秀的半自动持久层框架(Dao层)。
目录
一、准备工作
在Spring Boot环境下,创建工程并勾选MyBatis Framework和MySQLDriver后,通常会自动生成依赖,MyBatis的版本会随Spring Boot版本变化。
配置数据库连接字符串(.yml配置文件),建议直接复制

纯数字密码需要加双引号
开启日志

二、注解开发
1.查(Select)
无参查询全部,返回json数据到浏览器
按照id查询(单个参数)

此时容器里就是这个Integer值本身。#{ }里面写#{id}、#{value}都能取到,因为MyBatis对简单的参数不做Key的严格校验。但为了代码可读性,建议与形参名保持一致。
多个参数查询

多参数时,MyBatis的ParamNameResolver会将参数封装成一个Map。如果没有使用@Param指定Key,它默认使用的Key是param1/param2
变量名不匹配,会报错找不到变量

变量名匹配,顺序改变,不会报错

字段映射问题(驼峰命名)
数据库字段是delete_flag,实体类属性是deleteFlag。查询结果中该字段为null。因为MyBatis默认自动映射时,要求数据库列名和java属性名完全一致(忽略大小写)
解决方案:在yml配置文件中开启驼峰自动转换:

模糊查询(Like)
根据用户名进行模糊查询,使用concat函数

2.增(Insert)
基础插入,insert默认返回的是受影响的函数

获取自增主键,将id赋值到userinfo对象上

3.改(Update)
基础更新

4.删(Delete)
基础删除
