話很少說,直接擼代碼java
開發環境: MySQL 8.0 Spring Boot 2.5.3 MyBatis 2.2.0
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <!-- 在控制檯打印執行日誌 --> <verbose>true</verbose> <!-- 重複生成時會覆蓋以前的文件--> <overwrite>true</overwrite> <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> </dependencies> </plugin>
完整的
pom.xml
文件以下👇mysql
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.jyd</groupId> <artifactId>shaftend</artifactId> <version>1.0.0</version> <name>shaftend</name> <description></description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <!-- 在控制檯打印執行日誌 --> <verbose>true</verbose> <!-- 重複生成時會覆蓋以前的文件--> <overwrite>true</overwrite> <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
<?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> <!-- context 是逆向工程的主要配置信息 --> <!-- id:起個名字 --> <!-- targetRuntime:設置生成的文件適用於那個 mybatis 版本 --> <context id="default" targetRuntime="MyBatis3"> <!--optional,指在建立class時,對註釋進行控制--> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--jdbc的數據庫鏈接--> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/shaftend?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" userId="root" password="root"> </jdbcConnection> <!--非必須,類型處理器,在數據庫類型和java類型之間的轉換控制--> <javaTypeResolver> <!-- 默認狀況下數據庫中的 decimal,bigInt 在 Java 對應是 sql 下的 BigDecimal 類 --> <!-- 不是 double 和 long 類型 --> <!-- 使用經常使用的基本類型代替 sql 包下的引用類型 --> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- targetPackage:生成的實體類所在的包 --> <!-- targetProject:生成的實體類所在的硬盤位置 --> <javaModelGenerator targetPackage="com.jyd.entity" targetProject="src/main/java"> <!-- 是否容許子包 --> <property name="enableSubPackages" value="false"/> <!-- 是否對modal添加構造函數 --> <property name="constructorBased" value="true"/> <!-- 是否清理從數據庫中查詢出的字符串左右兩邊的空白字符 --> <property name="trimStrings" value="true"/> <!-- 創建modal對象是否不可改變 即生成的modal對象不會有setter方法,只有構造方法 --> <property name="immutable" value="false"/> </javaModelGenerator> <!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 --> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <!-- 針對數據庫的一個配置,是否把 schema 做爲字包名 --> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.jyd.dao" targetProject="src/main/java"> <!-- 針對 oracle 數據庫的一個配置,是否把 schema 做爲字包名 --> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!-- tableName是數據庫中的表名,domainObjectName是生成的JAVA類名,要生成更多的表就在下面繼續加table標籤 --> <table tableName="test" domainObjectName="Test" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
注:在配置文件中配置數據庫鏈接URL時,
參數部分的&
必須轉換爲&
,不然沒法正常編譯此配置文件web
在IDEA裏找到項目中配置的插件mybatis-generator:generate
,雙擊運行👇spring
在控制檯查看打印日誌👇sql
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building shaftend 1.0.0 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- mybatis-generator-maven-plugin:1.3.5:generate (default-cli) @ shaftend --- [INFO] Connecting to the Database [INFO] Introspecting table test [INFO] Generating Record class for table test [INFO] Generating Mapper Interface for table test [INFO] Generating SQL Map for table test [INFO] Saving file TestMapper.xml [INFO] Saving file Test.java [INFO] Saving file TestMapper.java [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.644 s [INFO] Finished at: 2021-08-11T13:21:09+08:00 [INFO] Final Memory: 20M/212M [INFO] ------------------------------------------------------------------------
在項目結構裏查看生成的代碼👇數據庫
解放雙手,關注業務邏輯apache