MyBatis 封装 JDBC :连接、访问、操作数据库中的数据
MyBatis 是一个持久层框架。
MyBatis 提供的持久层框架包括 SQLMaps 和 Data Access Objects(DAO)
- SQLMaps:数据库中的数据和 Java数据的一个映射关系
- 封装 JDBC 的过程
- Data Access Objects(DAO):数据访问对象,使用JDBC 访问数据库,操作数据库中的数据
MyBatis 特性:
- MyBatis 是一个持久层的框架
- 支持定制化SQL(SQL 需要我们自己手动写)
- 存储过程
- 高级映射
- MyBatis 封装了JDBC
- 不需要我们手动写 JDBC 代码、手动设置参数、获取结果集
- MyBatis 可以使用简单的 XML或注解用于配置和原始映射
- 将接口和Java的POJO(Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录
- MyBatis 是一个半自动的ORM(Object Relation Mapping,对象关系映射)框架(ORM 就是将 Java中的实体对象和关系型数据库中的数据创建映射关系)
- Object :Java 实体对象
- Relation:关系型数据库
- Mapping :映射
- SQL 关系自己写,自己配置
- Hibernate 是一个全自动的ORM 框架
- JDBC 是一个全手动的ORM
MyBatis 的下载:
GitHub - mybatis/mybatis-3: MyBatis SQL mapper framework for Java
后缀是 tar.gz 是Linux 系统下的压缩文件后缀
MyBatis 和其他持久层框架的对比
MyBatis 的核心配置文件:
- 核心配置文件:主要用于配置连接数据库的环境以及 MyBatis 的全局配置信息
- 核心配置文件存放的位置是:src/main/resources目录下
- 习惯上命名为:mybatis-config.xml
创建Mapper接口
MyBatis中的mapper接口相当于以前的dao。
区别是:
- mapper 仅仅是接口,不需要提供实现类。MyBatis里面有面向接口编程
- dao,有接口和实现类(不知道对不对)
- 、
创建MyBatis 映射文件:
ORM(Object Relationship Mapping)对象关系映射
- 对象:Java实体类对象
- 关系:关系型数据库
- 映射:二者之间的对应关系
1.先写 mapper 接口中的方法
2.然后写mapper.xml里面的配置文件
核心配置文件:(了解)
<?xml version="1.0" encoding="UTF-8" ?>
<!--配置文件中的约束-->
<!--DOCTYPE 后面的是根标签:configuration-->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置连接数据库的环境
environments:配置多个连接数据库的环境
属性:
default:设置默认使用的环境的id
-->
<environments default="development">
<!--
environment:配置某个具体的环境
属性:
id:表示连接数据库的环境的唯一标识,不能重复 ,
-->
<environment id="development">
<!-- 当前事务管理器,事务管理器的类型是JDBC;JDBC:事务的开启、提交和回滚都需要手动处理
transactionManager:事务管理器,用来设置事务管理方式的
属性:
type="JDBC/MANAGED"
JDBC:表示当前环境中,执行SQL时,使用的是JDBC中原生的事务管理方式,事务的提交或回滚需要手动处理
MANAGED:被管理,例如被Spring管理
-->
<transactionManager type="JDBC"/>
<!-- 数据源,连接数据库的信息。type=pooled,表示使用数据库连接池
dataSource:配置数据源
属性:
type:设置数据源的类型
type="POOLED/UNPOOLED/JNDI"
POOLED:表示使用数据库连接池缓存数据库连接
UNPOOLED:表示不使用数据库连接池
JNDI:表示使用上下文中的数据源
-->
<dataSource type="POOLED">
<!--设置连接数据库的驱动-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!--设置连接数据库的连接地址-->
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<!--设置连接数据库的用户名-->
<property name="username" value="root"/>
<!--设置连接数据库的密码-->
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 引入映射文件-->
<!-- mapper 接口相当于DAO
DAO 的取名,和我们操作的表和实体类有关。比如实体类是User,表名是t_user,DAO接口名就是 UserDao
-->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
</configuration>
把连接数据库的信息放在properties文件中
五、MyBatis 获取参数值的两种方式(重点⭐)
设置配置文件的模板:
创建核心配置文件的模板
创建映射文件的模板