目录
持久层
操作数据存储的层
与什么数据库无关
与什么技术无关
ORM(对象关系映射)
Object Relationship Mapping
MyBatis 框架就是一款持久层的ORM框架
MyBatis与JDBC的关系
MyBatis的底层是JDBC,基于反射技术在运行时调用JDBC,实现数据库编程
苞米豆 baomidou 公司开源的
官方文档:MyBatis-Plus
MyBatis与SpringBoot的关系
MyBatis框架能与SpringBoot框架无缝整合
学习一门框架的步骤
1.搭建环境
安装哪些依赖(三方库)
需要哪些配置
框架提供了哪些API
2.如何应用
3.研究它的底层
MyBatis-Plus框架环境搭建
先整合jsp,步骤在上一篇
MyBatis-Plus 基础配置参数
#开启sql日志打印功能(方便在测试的时候排查错误) mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
MyBatis-Plus代码
MyBatis-Plus替代了原生的JDBC
MyBatis代码写在工程的 dao包/mapper包
dao包 - 用原生的JDBC写,包名就叫dao
mapper包 - 用MyBatis-Plus 框架写 包名就叫mapper
创建持久层的子包
在mapper子包中定义接口
在xml文件中编写SQL语句
xml文件写在resources/mapper目录中
MyBatisi开启SQL语句打印
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
设置XML文件头
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper>
</mapper>
安装MyBatisX插件
实现接口与xml绑定后快速访问 检查接口中的抽线方法在绑定的xml文件中是否有对应的标签绑定
CRUD
增 insert
实体中的属性必须要有getter/setter方法
#{属性名} 从绑定的接口的方法的参数中取值
在启动类上使用@MapperScan(“mapper包的全路径”) 注解
如何拿到Mapper接口的实现类?
拿不到 (因为没有物理文件,它存在于JVM内存中)
如何拿到框架创建的Mapper接口的实现类的对象?
框架说:实现类你拿不到,对象我帮你创建好放在内存中,你直接拿对象
拿到框架创建的对象 三种方式:
根据容器中Bean的类型拿对象
根据容器中Bean的Name拿对象
用注解拿MyBatis框架创建的接口实现类的对象
指针类型就是接口类型
删 delete
物理删除一个用户(真实删除)
批量物理删除用户(真实删除)
逻辑删除
批量逻辑删除(真实数据保存 改变id_delete字段)
改 update
MyBatis写SQL语句的几种方式
1.在绑定的XML文件中写
(动态DQL用XML方便)
<insert></insert>
<update></update>
<delete></delete>
<select></delete>
2.不需要绑定XML文件,使用注解写
3.不写SQL语句
用注解把表名,字段名描述清楚,在实体类中描述,把实体类作为泛型传给框架,
框架自己会从实体类中读注解,从注解中读取到表名和字段名