0120 springboot集成Mybatis和代码生成器

在日常开发中,数据持久技术使用的架子使用频率最高的有3个,即spring-jdbc , spring-jpa, spring-mybatis.详情可以看我之前的一篇文章spring操作数据库的3个架子 .

spring-jdbc封装的比较少,需要在代码中拼接sql,不太适合大规模的企业级别的开发。
spring-jpa封装略多,适合开发后台管理类的系统,可以减少大量重复工作。

但是在当下的互联网大环境下,spring-mybatis既带来了开发的便捷性,也不失灵活性,特别适合性能要求高,可以灵活改变的场景。本篇文章大致回顾一下基于springboot的mybatis的配置开发要点以及基于maven插件的代码自动生成。

hello, springboot集成mybatis以及代码生成器!

springboot集成Mybatis


springboot集成Mybatis有大把的文章,不过如果撇开别人的观点,你觉得从0开始配置,应该有哪几个步骤呢?

我觉得大致分为如下几个要点:

  1. 引入依赖,数据库驱动,mybatis的starter;
  2. 配置数据库连接信息,连接池信息;
  3. 配置mybatis的核心配置信息;比如entity位置,执行器类型,xml的位置;
  4. 配置springboot的Mybatis注解,主要是开启支持,然后是mapper的地址;
  5. 测试启动成功:可以放到健康检查里面去做;

springboot集成Mybatis的关键步骤:


集成完毕之后,剩下的就是使用代码生成器,生成好常规的entity,xml,mapper, example 这些基础代码,然后结合业务逻辑,新增一些新的mapper的方法代码;

下面跟我一起来一步一步集成springboot:

1 依赖

使用spring initializr创建项目,引入如下依赖:

image.png

依赖说明如下:


2 数据源配置

数据源使用springboot默认自带的hikari数据源;
配置如下:

数据库连接信息

spring.datasource.url=jdbc:mysql://10.19.174.11:3306/demo_datasource
spring.datasource.username=lxdev
spring.datasource.password=db@LX4devtmp123
spring.datasource.type=com.zaxxer.hikari.HikariDataSource

数据连接池配置信息

spring.datasource.hikari.pool-name=demo_mybatis_and_plugin_pool
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.allow-pool-suspension=false



3 mybatis的配置

mybatis主要是配置mapper-locations,type-alias-package,以及驼峰对应关系,执行器的类型等;

#mybatis配置
mybatis.mapper-locations=classpath:com/springbootpractice/demo/mybatis/plugin/dao/xml/*.xml
mybatis.type-aliases-package=com.springbootpractice.demo.mybatis.plugin.dao.entity
mybatis.executor-type=reuse
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.cache-enabled=true
mybatis.lazy-initialization=true

4 入口@MapperScan配置

告诉应用程序mapper接口所在的包位置,以及标识注解。

package com.springbootpractice.demo.mybatis.plugin;

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

@SpringBootApplication
@MapperScan(annotationClass = Repository.class,
        basePackages = "com.springbootpractice.demo.mybatis.plugin.dao.mapper")
public class DemoMybatisAndPluginApplication {

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

}

5 数据库的健康检查

首先配置好actuator,开放health端点;

#ops配置
management.endpoints.web.exposure.include=*
management.endpoints.enabled-by-default=false
management.endpoint.health.enabled=true
management.endpoint.health.show-details=always

6 检查数据库连接状态

启动程序, curl http://localhost:8080/actuator/health/db 可以检查数据库的连接状态,正常返回结果如下:

{
status: "UP",
details:- {
database: "MySQL",
result: 1,
validationQuery: "/* ping */ SELECT 1"
}
}

至此,springboot集成mybatis的步骤完成了。但是一些模板代码,需要记忆吗?记忆起来很痛苦应该。所以,我们还应该配置一下mybatis的代码生成插件,生成好一些常用的代码,然后在生成的代码的基础上添加一些自己的持久化的mapper方法,提供给业务层调用。

代码生成器


代码生成器,mybatis官网有介绍。配置分为插件配置和生成配置。本文主要通过maven的插件来进行常规的代码生成。

官网提供的代码生成插件介绍

插件配置

主要使用的是maven插件,配置如下:主要是需要配置生成代码配置文件的位置;


       org.mybatis.generator
       mybatis-generator-maven-plugin
       1.3.7
       
           ${project.basedir}/src/main/resources/generateConfig.xml
           false
           true
       
       
           
               mysql
               mysql-connector-java
               5.1.31
           
           
               com.itfsw
               mybatis-generator-plugin
               1.3.8
           
       

配置要点如下:


生成代码配置

主要配置几个生成代码的位置,mapper,entity,example,xml,以及连接的数据库的信息。然后配置了几个我认为非常适用的增强插件。

配置代码如下




    
    
        
        
        
        
        
        
            
            
        
        
            
            
            
            
            
            
            
            
            
            
            
        
        
        
            
            
            
            
        
        
        
            
            
        
        
            
            
        
        
        
            
            
        
        
        
            
            
            
            
            
            
            
            
            
            
            
            
            
        
        

        
            
            
        
        
            
            
        
        
            
        
        
            
        

        
        

此外,还把两个信息配置外部化了。
jdbc.properties : 主要配置数据连接信息,父包名;

spring.datasource.url=jdbc:mysql://10.19.174.11:3306/demo_datasource
spring.datasource.username=lxdev
spring.datasource.password=db@LX4devtmp123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
code.base.package=com.springbootpractice.demo.mybatis.plugin.dao

comment.ftl 配置了注释生成的格式;




**

小结


通过本篇文章你可以学到如下内容:

  1. 0基础为你的springboot应用集成mybatis;
  2. 配置mybatis的代码生成器插件,并用于生成代码,提高工作效率;

代码获取点我!

springboot集成mybatis,配置好代码生成插件之后,就可以有大把时间专注于业务逻辑的开发,快速的完成研发工作,有大把的时间下班回去陪娃了。该demo可以用于生产环境,经过产品试验。放心使用,拿走不谢!

不管你有没有收获,美女还是要送的,最近在追剧,猜猜看这个美女是谁?鸡腿仙女送给你。
image.png

原创不易,转载请注明出处。

你可能感兴趣的:(0120 springboot集成Mybatis和代码生成器)