环境:
JDK1.8
Mysql 5.7
maven 3.6.1
IDEA
回顾:
JDBC
Mysql
Java基础
Maven
Junit
SSM框架:配置文件。 最好的方式:看官网文档
1、简介
1.1 什么是Mybatis
优秀的持久层框架
支持定制化SQ、存储过程以及高级映射
避免了几乎所有的JDBC代码和手动设置参数以及获取结果集
可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJ为数据库的记录
获取Mybatis
maven仓库
github
中文文档
1.2 持久层
持久化就是将程序的数据在持久状态和瞬时状态转化的过程
内存:断电即失
数据库:IO文件持久化
生活:冷藏,罐头。
为什么需要持久化,有一些对象不能丢失。
1.3 持久层
Dao层、Service层、Controller层...
完成持久化工作的代码层
层界限十分明显
1.4 为什么需要Mybatis
方便,帮助程序员将数据存入到数据库中
传统的JDBC代码太复杂,简化,框架,自动化
2、第一个Mybatis程序
思路:搭建环境-->导入Mybatis-->编写代码 -->测试!
搭建数据库
新建项目
删除src目录
导入maven依赖
可能遇到的问题:
1 配置文件没有注册
2 绑定接口错误
3 方法名不对
4 返回类型不对
5 Maven道出异常
3 CRUD
1、namespace
namespace中的包名要和Dao/Mapper接口的包名一致
2 select
选择,查询语句
id:就是对应的namespace中的方法名
resultType:sql语句执行的返回值
parameterType: 参数类型
编写接口,编写对应mapper的sql语句,测试(增删改注意需要提交事务)
3 insert
4 update
5 delete
6 错误分析
标签不能匹配错误
resource绑定mapper,需要使用路径
程序配置文件必须符合规范
NullPointerException,没有注册到资源
输出的xml文件中存在乱码
maven资源存在资源没有导出
7 万能Map
假设我们的实体类或者数据库中的表,字段或者参数过多,可以参考使用map
Map传递参数,直接在sql中取出key即可 parameterType = ”map“
对象传递参数,直接在sql中取对象的属性即可 parameterType="Object"
只有一个基本类型参数的情况下,可以直接在sql中取到
多个参数用map,或者注解!
8 模糊查询
1 java代码执行的时候,传通配符%
2 在sql中使用通配符
总结:
创建流程