1.1 Mybatis介绍
mybatis是一款优秀的持久层框架
概括:
mybatis是一款优秀的持久层框架,并且在内部整合了jdbc,简化了用户操作数据库的过程
mybatis是一个半自动化的ORM映射框架
1.2 ORM思想
对象映射关系,用于实现面向对象编程语言里不同类型系统的数据之间的转换
核心知识:
宗旨:利用对象的方式去操作数据库.
- 要求查询的结果集 可以自动封装为对象 (读)
- 利用对象封装数据,之后动态的生成sql语句执行相关的操作.(更新)
1.3 springboot整合mybatis流程
- 导入依赖jar包,数据库驱动/jdbc包/spring整合mybatis包.
- 编辑application.yml文件, 配置数据源/配置spring整合mybatis.
- 编辑mybatis接口文件/编辑xxx.xml映射文件.
- 通过@MapperScan为接口创建代理对象.
1.4@SpringBootTest
说明: 该注解是SpringBoot的程序,为了简化后端的代码的测试,提供了专门的测试API.
关键点: 测试时需要Spring容器管理对象,同时将测试的对象获取,之后再进行测试.
1.5 Mybatis调用流程
- Spring容器为接口创建代理对象, Spring容器启动对象立即创建.
- 根据@Autowired 注解动态注入Mapper接口的代理对象
- 用户通过Mapper接口调用方法(执行业务操作)
- Mybatis根据接口方法动态匹配xml的映射文件
1.根据Mapper的接口路径匹配xml文件中的com.jt.mapper.UserMapper
2.根据接口的方法,匹配xml映射文件中的sql ID 之后执行sql语句 - Mybatis将结果集封装为对象之后返回.
1.6 关于Mybatis-statement异常
- 更换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">
<!--namespace必须与UserMapper接口一一对应-->
<mapper namespace="com.jt.mapper.UserMapper">
<!-- id与接口里的方法名一致-->
<select id="getAll" resultType="User">
select * from demo_user
<!--驼峰命名的规则
表字段: user_id,user_name
对象的属性: userId,userName
resultType: 保证属性与字段名必须一致
Mybatis 提供驼峰命名规则:
字段名user_id 去除下划线之后再映射属性-->
</mapper>
- 更换yml配置文件
server:
port: 8090
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
#如果数据库密码以数字0开头 则必须使用""号包裹
#password: "01234"
#SpringBoot整合Mybatis配置
mybatis:
# 添加别名包
type-aliases-package: com.jt.pojo
# 加载映射文件,一个借口对应一个映射文件
mapper-locations: classpath:/mybatis/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
- 清空缓存后重启(双击clean)