# mybatis **Repository Path**: wangsidandan/mybatis ## Basic Information - **Project Name**: mybatis - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-04-01 - **Last Updated**: 2024-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 概述 > jdbc 6个步骤 1. 创建驱动 `Class.forName('com.mysql.cj.jdbc.Driver')` 2. 获取连接 `Connection conn DriverManager.getConnection(url,username,password)` 3. 获取执行器 `Ps ps = conn.prepareStatement('select * from .. where id = ?'); ps.setInt(1,user.getId())` 4. 执行sql `Result rs = ps.executeQuery()` 5. 处理结果集 `user.setUsername(rs.getString('username'))` 6. 关闭资源 > 开源持久层框架 ORM(对象关系映射)映射框架 - 自动映射 - 高级映射 多表自动映射 - 存储过程 - 动态SQL - 批量处理 - 缓存 > 术语 1. 引入mybatis依赖 `org.mybatis` 2. 配置连接信息 核心配置文件 `mybatis-conf.xml` 3. 加载配置文件 变为java配置 - SqlSessionFactoryBuilder 将xml -> JavaConfigration - SqlSessionFactory - `SqlSession` mybatis和mysql的会话连接 - `XXXMapper` 映射器 执行sql的入口 > springboot 后端脚手架 快速搭建项目 - mybatis hibernate springmvc security shiro cloud rabbitmq - 搭建 xml | java 环境配置 - **spring 框架** - 整合市面上java框架 - 基于xml 配置 - springboot 自动配置 - 勾选需要的依赖 # 入门案例 - 基于springboot 创建脚手架项目 - application.properties - ```properties spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/briup spring.datasource.username=briup spring.datasource.password=briup ``` - 准备数据库表和类信息 - 编写mybatis ```java @Mapper public interface UserMapper { @Select("select * from t_user") List findAll(); } ``` > SpringBoot代码 简化mybatis - pom.xml - springboot依赖 - mybatis-spring - mysql驱动 - lombok 简化set/get - src/main/resources/appliclation.properties - 配置信息 - 驱动 数据库信息 - Application 程序入口 - springboot加载配置 - ApplicationTest 测试类 - `SpringBootTest` 自动运行程序入口 - ```java @SpringBootTest // 该注解 去运行主函数 class ApplicationTests { @Autowired // 从spring取出UserMapper接口的实现类 private UserMapper userMapper; @Test public void contextLoads() { System.out.println(userMapper.findAll()); } } ``` > Mybatis代码 - User类 - lombok注解 - XXXMapper 映射器 - ```java @Mapper // spring托管 会自动创建该接口的实现类 public interface UserMapper { // 调用该接口的方法 该方法上的sql会自动执行并映射到List // @Select 查询 @Insert @Delete @Update @Select("select * from t_user") List findAll(); } ``` # 核心配置文件 - 数据源 - sql日志 - 驼峰命名 - 映射文件位置 - 别名包 # 映射器 ## 注解 `UserMapper` - @Select - @Delete - @Update - @Insert - @Option ```java package com.briup.mapper; public interface UserMapper{ User findById(Integer id); } ``` ## 映射文件 `UserMapper.xml` ```xml ``` `UserTest` ```java @Autowired private UserMapper userMapper; User user = userMapper.findById(1); com.briup.mapper.UserMapper.findById(1); ``` # 动态sql - `` - `` - `` # 多表查询 ## 一对一 ### **嵌套结果查询** - 一次查询所有结果 多表连接 - resultMap - 封装本表信息 - 其他表信息 `association` ### 嵌套SQL查询 - 分多次结果 子查询 - 第一次 查本表 外键 封装本表信息 - `association` - 第二次 根据外键查另一张表的信息 ## 一对多 ### **嵌套结果查询** - 一次查询所有结果 多表连接 - resultMap - 封装本表信息 - 其他表信息 `collection` ### 嵌套SQL查询 - 分多次结果 子查询 - 第一次 查本表 外键 封装本表信息 - `collection` - 第二次 根据外键查另一张表的信息 ## 多对多 # 缓存 # 原生搭建 - 依赖 mybatis - 核心配置文件 - 数据源 映射文件位置 - 映射文件 - sql - 测试代码