mybatis自動生成程式碼 mybatis-generator
阿新 • • 發佈:2020-12-04
目錄
ORM - MyBatis
物件-關係對映(Object/Relation Mapping,簡稱ORM),是隨著面向物件的軟體開發方法發展而產生的。面向物件的開發方法是當今企業級應用開發環境中的主流開發方法,關係資料庫是企業級應用環境中永久存放資料的主流資料儲存系統。物件和關係資料是業務實體的兩種表現形式,業務實體在記憶體中表現為物件,在資料庫中表現為關係資料。記憶體中的物件之間存在關聯和繼承關係,而在資料庫中,關係資料無法直接表達多對多關聯和繼承關係。因此,物件-關係對映(ORM)系統一般以中介軟體的形式存在,主要實現程式物件到關係資料庫資料的對映。
一、mybatis-generator
1.1 pom
引入相關依賴,完整如下
<?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.4.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.biubiu</groupId> <artifactId>base</artifactId> <version>0.0.1-SNAPSHOT</version> <name>base</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!--spring web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--連線池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.18</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!--mybatis generator 自動生成程式碼外掛--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <!-- 配置資料庫連結及mybatis generator core依賴 生成mapper時使用 --> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
1.2 generatorConfig.xml配置
plugin裡有提到
<?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"> <!-- 配置生成器 資料庫連線配置、型別轉換、生成模型的包名及位置、生成對映檔案的包名及位置、生成mapper檔案的包名及位置、要生成的表 --> <generatorConfiguration> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 資料庫連結URL,使用者名稱、密碼 --> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/db_biubiu?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai" userId="xxx" password="xxx"> </jdbcConnection> <!-- 型別轉換 --> <javaTypeResolver> <!-- 是否使用BigDecimals,false可自動轉化以下型別(Long Integer Short等) --> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成模型的包名和位置--> <javaModelGenerator targetPackage="com.biubiu.base.domain" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成對映檔案的包名和位置--> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO的包名和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.biubiu.base.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是資料庫中的表名或檢視名 domainObjectName是實體類名--> <table tableName="bs_city" domainObjectName="City" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <property name="useActualColumnNames" value="false"/> <!-- 資料庫表主鍵 --> <generatedKey column="CITY_ID" sqlStatement="Mysql" identity="true"/> </table> </context> </generatorConfiguration>
1.3 準備一個表
create table db_biubiu.bs_city
(
CITY_ID int auto_increment comment '自增列'
primary key,
CITY_CODE varchar(40) not null comment '市程式碼',
CITY_NAME varchar(40) not null comment '市名稱',
SHORT_NAME varchar(20) not null comment '簡稱',
PROVINCE_CODE varchar(40) null comment '省程式碼',
LNG varchar(20) null comment '經度',
LAT varchar(20) null comment '緯度',
SORT int null comment '排序',
GMT_CREATE datetime null comment '建立時間',
GMT_MODIFIED datetime null comment '修改時間',
MEMO varchar(250) null comment '備註',
DATA_STATE int null comment '狀態',
TENANT_CODE varchar(32) null comment '租戶ID'
)
comment '城市設定' charset=utf8;
create index Index_1
on db_biubiu.bs_city (CITY_CODE, TENANT_CODE);
1.4 執行命令
mybatis-generator:generate -e