springboot高效代码自动化生成

作者:自由 2020/12/6 17:20:04
mybatis-generator自动生成代码插件使用详解

        今天我们来看一下springboot中使用mybatis来自动生成代码,以前做ssh框架的时候实体和映射经常自己新建,浪费大量的时间,不过hibernate,到现在还是那么的费劲,尤其是复杂查询,特别难写。后来使用 ibatis的时候用xml写sql语句虽然是半自动话,但是复杂查询还能说的过去。最近几年spring data和hibernate差不多,单表查询挺方便,但是复杂查询很难写。不过我还是比较喜欢使用mybatis,mybatis以前叫ibatis,那时候我用的时候写一堆xml,现在也是一样,不过现在借助工具之后,感觉方便多了,可能也是用的习惯问题,比较喜欢使用mybatis。前几篇介绍了常用的excel导入导出图片上传加水印这些常用的代码,加上现在的mybatis的自动化代码生成,基本上做一个简单的系统是差不多了,下面我们来了解一下mybatis。

mybatis简介

       MyBatis是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
参照:Mybatis官网 https://mybatis.org/mybatis-3/zh/index.html
mybatis-generator自动生成代码插件使用详解
       mybatis-generator是一款在使用mybatis框架时,自动生成model,dao和mapper的工具,很大程度上减少了业务开发人员的手动编码时间,生成简单的单表增删查改操作,方便开发人员的专心于业务代码开发。下面我们来看一下具体怎么实现。
1.在springboot框架的pom.xml中配置mybatis相关插件
 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.6</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>
<!-- 分页 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.1.6</version>
</dependency>

2.配置application.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/ordershop
    username: root
    password: 123456
    tomcat:
      initial-size: 5
      max-active: 30
  aop:
    auto: true
    proxy-target-class: false
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
 
mybatis:
    mapperLocations: classpath:mybatis/mapper*.xml
    typeAliasesPackage: com.lz.ordershop.*.model
pageHelper:
  reasonable: "true"
  supportMethodsArguments: "true"
  returnPageInfo: check
  params: count=countSql

3.配置mybatis-generator数据库链接

# MySQL Connector Jar
classPath=C:/Users/user/.m2/repository/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar
 
# MySQL
jdbc_driver=com.mysql.cj.jdbc.Driver
jdbc_url=jdbc:mysql://127.0.0.1:3306/ordershop?useUnicode=true&nullCatalogMeansCurrent=true
jdbc_user=root
jdbc_password=123456

4.配置自动生成的配置文件generatorConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
 
    <properties resource="mybatis/config.properties"/>
 
    <classPathEntry location="${classPath}"/>
 
    <context id="context1" targetRuntime="MyBatis3">
 
        <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}"
                        password="${jdbc_password}"/>
 
        <javaModelGenerator targetPackage="com.lz.ordershop.sys.model" targetProject="src-gen\java"/>
        <sqlMapGenerator targetPackage="com.lz.ordershop.sys.dao" targetProject="src-gen\resources"/>
        <javaClientGenerator targetPackage="com.lz.ordershop.sys.dao" targetProject="src-gen\java"
                             type="ANNOTATEDMAPPER"/>
 
        <table tableName="sys_authority"/>
        <table tableName="sys_authority_copy"/>
    </context>
 
</generatorConfiguration>

5.配置扫描的dao

@SpringBootApplication
@MapperScan("com.cn.ms.*.dao")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(TmsframeworkApplication.class, args);
    }
}

 6.编写cmd脚本执行maven脚本

在spring boot项目根目录下新建clearFile.cmd文件

@echo off
echo.
echo [信息] 清除文件
echo.

mvn antrun:run
mvn mybatis-generator:generate
pause

在spring boot项目根目录下新建mybatis-generator.cmd文件

@echo off
echo.
echo [信息] 生成实体文件
echo.

mvn mybatis-generator:generate
pause

 编写完脚本后每次生成实体的时候先运行clearFile.cmd文件然后在运行mybatis-generator.cmd文件。

高效代码生成工具

java代码生成

自动生成代码

评论: