zoukankan      html  css  js  c++  java
  • 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 示例-插件

    求关注,求点赞,《架构学习》持续更新、完善、纠正 https://www.yuque.com/yinjianwei/vyrvkf
  • 相关阅读:
    innodb下ibd文件组成
    redo在ACID中作用,及一些概念
    mysql innodb安装目录下文件介绍: 日志记录redu/undo log及临时表ibtmp1
    mysql innodb引擎独立表空间记录,表组成及表迁移
    Python之函数、递归、内置函数
    Python之列表、字典、集合
    Python之介绍、基本语法、流程控制
    CSS之Bootstrap(快速布局)
    Django之缓存
    python之class面向对象(进阶篇)
  • 原文地址:https://www.cnblogs.com/yinjw/p/11757013.html
Copyright © 2011-2022 走看看