サンプル環境:Eclipse + Springboot + Mybatis + MySQL
1つは、pom.xmlが関連する依存関係を導入することです。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
次に、データベーステーブルをテストします
CREATE TABLE `m_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`sex` varchar(5) DEFAULT NULL,
`address` varchar(100) DEFAULT NULL,
`birthday` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE `student` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) COLLATE utf8_bin DEFAULT NULL,
`age` tinyint(3) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
3、データベース接続構成(application.properties)
spring.datasource.driverClassName= com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatisdemo?characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username= root
spring.datasource.password= root
springbootには2種類の構成ファイルが存在する可能性があることに注意してください。1つは.propertiesで、もう1つは.ymlです。.propertiesの優先度はymlの優先度よりも高くなっています。ロードプロセス中に、最初に.ymlをロードし、次に.propertiesをロードします。同じプロパティ構成が含まれている場合、後者は前者を上書きします。
第四に、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>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除所有自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatisdemo?serverTimezone=UTC"
userId="root"
password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- entity存放位置 -->
<javaModelGenerator targetPackage="com.hsw.sps.entity" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- mapper存放位置 -->
<sqlMapGenerator targetPackage="com.hsw.sps.dao" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- xml文件存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.hsw.sps.dao" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="m_user" domainObjectName="User"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
</context>
</generatorConfiguration>
5、EclipseはMybatisジェネレータプラグインをインストールします
6、generatorConfig.xmlを実行し、右クリックして[実行]> [Mybatisジェネレーターの実行]を選択します
7、実行中の結果
MyBatis Generator Started...
Buildfile: H:\workspace\.metadata\.plugins\org.mybatis.generator.eclipse.ui\.generatedAntScripts\SST-generatorConfig.xml.xml
17:06:27.322 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.eclipse.ui.ant.logging.AntLogFactory - Logging initialized using 'org.mybatis.generator.eclipse.ui.ant.logging.slf4j.Slf4jLoggingLogFactory@66aa684d' adapter.
17:06:27.337 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.logging.LogFactory - Logging initialized using 'org.mybatis.generator.eclipse.ui.ant.logging.AntLogFactory@2e2bf5b8' adapter.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
17:06:27.772 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Retrieving column information for table "m_user"
17:06:27.866 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "id", data type 4, in table "mybatisdemo..m_user"
17:06:27.866 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "username", data type 12, in table "mybatisdemo..m_user"
17:06:27.867 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "sex", data type 12, in table "mybatisdemo..m_user"
17:06:27.867 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "address", data type 12, in table "mybatisdemo..m_user"
17:06:27.867 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "birthday", data type 93, in table "mybatisdemo..m_user"
BUILD SUCCESSFUL
MyBatis Generator Finished
ps:これは、com.mysql.jdbc.Driverが非推奨になったことを示しており、com.mysql.cj.jdbc.Driverを使用する必要があります。
実行が成功すると、関連テーブルのエンティティ、マッパー、およびxmlが作成されたことがわかります。関連パッケージが正常に実行されたが作成されなかった場合、プロジェクトは更新されます。これでmybatisgenrtatorを再度実行すると時間、それは作成され続けます。ファイルにコンテンツを追加します。つまり、ファイルを再生成する場合は、関連するファイルを削除して再生成する必要があります。
8つ目は、generatorConfig.xmlで、ユーザーテーブルの関連マッピングのみが構成されているため、ユーザーテーブルの関連ファイルが生成されます。次に、学生テーブルがあります。学生テーブルの構成を書き直す必要がありますか? ?データベーステーブルに数百のテーブルがある場合、それらすべてを手動で定義する必要がありますか?答えはノーです。mybatisジェネレーターはライブラリの下のすべてのテーブルを自動的に生成できます。主要な構成は次のとおりです。
<table schema="mybatisdemo" tableName="%"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
すべての構成ファイル
<?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="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除所有自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatisdemo?serverTimezone=UTC"
userId="root"
password="root">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- entity存放位置 -->
<javaModelGenerator targetPackage="com.hsw.sps.entity" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- mapper存放位置 -->
<sqlMapGenerator targetPackage="com.hsw.sps.dao" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- xml文件存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.hsw.sps.dao" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--<table tableName="m_user" domainObjectName="User"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>-->
<table schema="mybatisdemo" tableName="%"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
</context>
</generatorConfiguration>
逆方向に生成されたファイルを削除した後、再度実行すると、次の結果が得られます。
MyBatis Generator Started...
Buildfile: H:\workspace\.metadata\.plugins\org.mybatis.generator.eclipse.ui\.generatedAntScripts\SST-generatorConfig.xml.xml
18:28:25.319 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.eclipse.ui.ant.logging.AntLogFactory - Logging initialized using 'org.mybatis.generator.eclipse.ui.ant.logging.slf4j.Slf4jLoggingLogFactory@6dadd05b' adapter.
18:28:25.333 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.logging.LogFactory - Logging initialized using 'org.mybatis.generator.eclipse.ui.ant.logging.AntLogFactory@49970f30' adapter.
18:28:25.723 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Retrieving column information for table "mybatisdemo.%"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "id", data type 4, in table "mybatisdemo..m_user"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "username", data type 12, in table "mybatisdemo..m_user"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "sex", data type 12, in table "mybatisdemo..m_user"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "address", data type 12, in table "mybatisdemo..m_user"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "birthday", data type 93, in table "mybatisdemo..m_user"
18:28:25.797 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "id", data type 4, in table "mybatisdemo..student"
18:28:25.797 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "name", data type 12, in table "mybatisdemo..student"
18:28:25.797 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "age", data type -6, in table "mybatisdemo..student"
BUILD SUCCESSFUL
MyBatis Generator Finished
ご覧のとおり、mybatisジェネレーターは現在のデータベース内のすべてのテーブルを自動的にスキャンし、関連ファイルを逆に生成しました。