SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)

陆陆续续又忙了几天,继续写。

本篇仿照着优秀的文章的书写,加上自己的理解和踩过的坑,原文地址:https://www.jianshu.com/p/5cd772c07041?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=weixin

环境/版本一览:

  • 开发工具:eclipse
  • springboot: 2.0.1.RELEASE
  • jdk:1.8.0_40
  • maven:3.3.9

额外功能:

  • mybatis generator 自动生成代码插件

开始搭建:

一.创建项目:

1、同样如上文,创建SpringBoot项目(默认为最新版),

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第1张图片
image

2、填写项目的基础信息,

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第2张图片
image

3、选择基础的项目依赖包,可以以后手动添加,

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第3张图片
image

4、选择finish,等待依赖包加载完成。

这是生成pom.xml文件



    4.0.0

    com.luozhen
    StudyForSpringBoot
    0.0.1-SNAPSHOT
    jar

    StudyForSpringBoot
    There are two kinds of life, one is burning, the other is rotten.

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.1.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        

        
            org.springframework.boot
            spring-boot-devtools
            runtime
        
        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

这是生成的文件目录,其中的配置文件application.properties可以根据自己的习惯选择,使用properties或者yml文件,本项目使用的是yml配置文件,所以把原本application.properties删除,创建一个application.yml文件,也可以直接 rename后缀名为yml

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第4张图片
image

更改后:

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第5张图片
image

二.配置mybatis及自动生成代码generate

mybatis配置有两种,一种是注解版,在代码中配置;另一种是xml版,搭配generate,可以灵活的动态生成SQL,很方便的调整SQL.

此处我们讲解的是xml版,搭配generate使用.

1.尽管我们在前面创建项目的时候依赖了mybatis依赖包,但是我们还是要确认下.如果前面没有勾选,我们也可以手动导入mybatis依赖包,在标签中写入一下代码导入依赖,


    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    1.3.2

2.接下来就是application.yml配置文件中添加相关的配置.

#端口号
server:
  port: 55555

#datasource
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    # 基本属性
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 123456

#mybatis
mybatis:
  type-aliases-package: com.luozhen.entity
  mapper-locations: classpath:mybatis/mappers/*.xml

以上的就是配置文件的基础配置,后续可加入详细的内容,同时需要注意#mybatis后面的配置需要对应的文件包,以下为我的文件包,

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第6张图片
image

很多文章上都写了需要mybatis-config.xml文件,但是你会发现其中的内容会和application.yml的重复,配置为数据库的连接配置.SpringBoot会自动加载,spring.datasource.*相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中,对了你一切都不用管了,直接拿起来使用就行了。

4.到这里mybatis的配置就完成了,接下就是generate的配置.同样,也是需要在pom.xml中导入依赖包,在中添加依赖,


      
        org.mybatis.generator
        mybatis-generator-maven-plugin
        1.3.5
        
          
          src/main/resources/mybatis/generatorConfig.xml
          true
          true
        
        
          
            Generate MyBatis Files
            
              generate
            
            generate
            
              true
              true
            
          
        
        
          
            MySQL
            mysql-connector-Java
            5.1.46
          
          
            org.mybatis.generator
            mybatis-generator-core
            1.3.6
          
          
            org.mybatis
            mybatis
            3.4.6
          
        
      

5.配置generatorConfig.xml,内容,



    


  
    
    
      
      
    
    
    
    

    
      
    

    
    
      
      
    

    
    
      
    

    
    
      
    


    
    

具体的参考配置可以查看:

https://www.jianshu.com/p/e09d2370b796 Mybatis Generator最完整配置详解

6.最后配置generator生成,F5刷新

项目 右键==>run as ==> maven bulid ==>弹出对话框 ==>在goals中输入mybatis-generator:generate 或者 点击select --》选择你的mybatis插件 --》apply --》run,结果如下

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第7张图片
image

搭建完成后的目录及文件:

目录:

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第8张图片
image

我的数据库表结构:

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator)_第9张图片
image

生成的实体,SysDepartment.java:

package com.luozhen.entity;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

public class SysDepartment {
    private String id;

    private String name;

    private Date createdate;

    private String parentId;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public Date getCreatedate() {
        return createdate;
    }

    public void setCreatedate(Date createdate) {
        this.createdate = createdate;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId == null ? null : parentId.trim();
    }
}

生成的mapper.xml,在resources/mybatis/mappers下:




  
    
    
    
    
  
  
    ID, NAME, CREATEDATE, PARENT_ID
  
  
  
    delete from sys_department
    where ID = #{id,jdbcType=VARCHAR}
  
  
    insert into sys_department (ID, NAME, CREATEDATE, PARENT_ID)
    values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{createdate,jdbcType=TIMESTAMP}, 
      #{parentId,jdbcType=VARCHAR})
  
  
    insert into sys_department
    
      
        ID,
      
      
        NAME,
      
      
        CREATEDATE,
      
      
        PARENT_ID,
      
    
    
      
        #{id,jdbcType=VARCHAR},
      
      
        #{name,jdbcType=VARCHAR},
      
      
        #{createdate,jdbcType=TIMESTAMP},
      
      
        #{parentId,jdbcType=VARCHAR},
      
    
  
  
    update sys_department
    
      
        NAME = #{name,jdbcType=VARCHAR},
      
      
        CREATEDATE = #{createdate,jdbcType=TIMESTAMP},
      
      
        PARENT_ID = #{parentId,jdbcType=VARCHAR},
      
    
    where ID = #{id,jdbcType=VARCHAR}
  
  
    update sys_department
    set NAME = #{name,jdbcType=VARCHAR},
      CREATEDATE = #{createdate,jdbcType=TIMESTAMP},
      PARENT_ID = #{parentId,jdbcType=VARCHAR}
    where ID = #{id,jdbcType=VARCHAR}
  

对应的daos文件,SysDepartmentMapper.java:

package com.luozhen.daos;

import java.util.List;

import com.luozhen.entity.SysDepartment;

public interface SysDepartmentMapper {
    int deleteByPrimaryKey(String id);

    int insert(SysDepartment record);

    int insertSelective(SysDepartment record);

    SysDepartment selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(SysDepartment record);

    int updateByPrimaryKey(SysDepartment record);
  
}

使用:

已经完成生成文件,现在我们要使用生成的文件,使用生成mapper.xml中SQL语句,有两种方法,一种统一,一种分散,看你的个人习惯.

(1)统一

1.首先在你的启动类中添加一个注解,注解的目录为生成的dao类文件目录,如下

package com.luozhen;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.luozhen.daos")
@SpringBootApplication
public class StudyForSpringBootApplication {

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

2.xml文件中

image

id属性必须与你dao类文件中方法名相对应

image

,其中有些坑,下篇文章详解,

(2)分散.在dao类文件上,每个添加@Mapper注解,其余相同.

image.png

剩下的使用步骤就不再详解,请参考文章:

https://www.jianshu.com/p/5cd772c07041?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=weixin

无非就是SpringMVC的基础架构,以上若有问题可以在评论区提出,大家相互学习.

你可能感兴趣的:(SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator))