MyBatis 示例-简介

简介

为了全面熟悉 MyBatis 的使用,整理一个 MyBatis 的例子,案例中包含了映射器动态 SQL 的使用。本章先介绍项目结构和配置。 

  • 项目地址:链接
  • 数据库表的模型关系:链接

项目结构

  • 项目框架:Spring Boot、MyBatis、Mybatis-PageHelper、Druid、Swagger;
  • db 目录存放数据库 SQL 文件,项目中使用的表可以通过该 SQL 创建;
  • com.yjw.demo.mybatis.biz 目录存放业务相关的类;
  • com.yjw.demo.mybatis.common 目录存放公共配置类;
  • Application 类为启动类;
  • resources 目录下存放配置文件;

如何启动项目

  1. 在数据库中建表,建表语句在 db 目录
  2. 修改 application.yml 配置,通过 Application 类启动项目

配置

数据源配置

#druid数据源
spring: 
  datasource: 
    druid: 
      url: jdbc:mysql://localhost:3306/mybatis-demo?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true&useSSL=true
      username: root
      password: 123456
      driver-class-name: com.mysql.jdbc.Driver
      initial-size: 5
      max-active: 100
      min-idle: 5
      max-wait: 60000
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: 200
      validation-query: SELECT 'x'
      test-on-borrow: false
      test-on-return: false
      test-while-idle: true
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      filters: stat

MyBatis 配置

#mybatis配置
mybatis: 
  type-aliases-package: com.yjw.demo.mybatis.biz.pojo.entity;com.yjw.demo.mybatis.biz.pojo.query
  mapper-locations: classpath:mapper/*.xml
  configuration:
    lazy-loading-enabled: true
    aggressive-lazy-loading: false
  • type-aliases-package:它一般对应我们的实体类所在的包,这个时候会自动取对应包中类名作为别名,不区分大小写,多个 package 之间可以用逗号或者分号等来进行分隔;
  • mapper-locations:映射文件地址;
  • lazy-loading-enabled:开启延迟加载,使得关联属性都按需加载,而不自动加载;
  • aggressive-lazy-loading:设置为 true 时,MyBatis 的内容按层级加载,相同层级的数据会被加载出来,比如加载学生信息的时候,它会根据鉴别器去找到健康的情况,而当我们访问课程成绩的时候,由于学生证和课程成绩是一个层级,它也会去访问学生证的信息;

lazy-loading-enabled、aggressive-lazy-loading 这两个配置在级联那块会详细描述。

注意:如果这里配置了 configuration,MyBatis 配置文件(mybatis-config.xml)中就不能再配置了,两个地方都配置存在冲突,不能共用。

Dao 扫描配置

/**
 * 启动,配置类
 * 
 * @author yinjianwei
 * @date 2017/12/06
 */
@SpringBootApplication
@MapperScan("com.yjw.demo.mybatis.biz.dao")
public class Application {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

}

启动类 Application 中配置了 @MapperScan 会自动扫描该路径下的所有 Mapper 类。

MyBatis 实用篇

MyBatis 概念

MyBatis 示例-简介

MyBatis 示例-类型处理器

MyBatis 示例-传递多个参数

MyBatis 示例-主键回填

MyBatis 示例-动态 SQL

MyBatis 示例-联合查询

MyBatis 示例-缓存

MyBatis 示例-插件

猜你喜欢

转载自www.cnblogs.com/yinjw/p/11757013.html