1.1 Mybatis介绍
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射
Mysql入门实现步骤:
1.编辑mybatis-config.xml核心配置文件
1.1执行数据源配置
2.编辑POJO实体对象.要求与数据库表中的字段一一对应
3.编辑Mapper接口. 添加接口方法
4.编辑接口的实现类(配置文件方式) 要求namespace id resultType
5.mybatis加载指定的mapper映射文件
6.创建SqlSessionFactory工厂对象
7.获取SqlSession,开启数据库链接
8.获取接口对象(代理对象)
9.调用接口方法,获取返回值结果
10.关闭sqlSession链接.
2.1 ORM思想
对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。简单来说就是利用对象操作数据库
1. 对象应该与数据库中的表一一映射.
2. 对象中的属性应该与表中的字段一一映射.
3. 其中的映射应该由程序自动完成.无需人为干预.
JDBC的优缺点
弊端:
1. 无论如何执行都必须获取数据库链接. 链接池 c3p0 druid HK链接池
2. 操作sql语句时,步骤繁琐. 不便于学习记忆.
3. 资源必须手动关闭.
优点:
操作数据库最快的方式就是JDBC. 协议 TCP
mybaties
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。(mybatis在内部将JDBC封装).
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
知识整理:
1.持久化 : 计算机在计算时,数据都在内存中.如果断电则数据清空,所以要求将内存数据保存到磁盘中. 概念.
2.持久层: 程序通过Dao/Mapper 与数据库进行交互的层级代码 (Controller层 Service层 Dao/Mapper层) 具体操作.
小结: Mybatis是一个优秀的持久层框架,基于ORM设计思想,实现了以对象的方式操作数据库.
了解: Mybatis的ORM并不完全,只完成了结果集映射,但是Sql需要自己手写.所以也称之为半自动化的ORM映射框架.
2. Mybatis框架总结
2.1 ORM思想
概括: 利用对象的方式封装数据库
核心规则:
对象与表一一映射.
对象的属性与表中的字段一一映射.
2.2 Mybaits框架介绍
小结: Mybatis是一个优秀的持久层框架,基于ORM设计思想,实现了以对象的方式操作数据库.
2.3 Mybaits使用步骤
2.3.1 导入jar包
课堂使用的是springboot整合mybatis的版本.但是使用其中的依赖包 3.5.7的版本.
2). mysql的驱动版本 mysql:mysql-connector-java:8.0.22
3). 驱动的配置: com.mysql.cj.jdbc.Driver
4). 高版本应该使用高版本数据库
2.3.2 编辑核心配置文件
数据库环境的配置
Mapper接口与xml映射文件的绑定关系.
2.3.3 创建接口/xml映射文件
说明: 接口与xml映射文件 一对一映射.
2.3.3 入门案例步骤
指定mybatis-config.xml的路径
读取指定的核心配置文件.
通过SelSessionFactoryBuilder.buid方法创建SqlSessionFactory.
获取SqlSession
获取Mapper的接口
从mapper接口文件中获取业务数据.
调用xml文件的Sql语句实现数据获取.
mybatis自动封装为对象返回 交给用户处理.
2.4 简化mybatis操作
注解: @BeforeEach 在执行@Test注解之前执行.
2.5 Mybatis的参数封装
1. 封装为实体对象 user对象
2. 更为常用的方式 Map集合
3. 如果传递的数据有多个,则可以使用注解@Param("sex") String sex 封装为Map.
2.6 #号 $符用法
使用#{} 获取数据时,默认有预编译的效果.防止sql注入攻击.
mybatis使用#{}获取数据时,默认为数据添加一对""号.
当以字段名称为参数时,一般使用${},但是这样的sql慎用. 可能出现sql注入攻击问题.
小结: 一般条件下能用#{}号,不用${}
1
2.7 mybatis转义字符
xml文件中的转义字符.
> > 大于
< < 小于
& & 号
说明:如果sql中有大量的转义字符 建议使用转义标签体
语法:
2.8 Mybatis集合写法
array
list
map



