mybatis逆向工程


學而時習之,不亦說乎!

                             --《論語》

*****

【2020年06月11日】優先推薦使用下面這個工程,用法在 README.md

https://github.com/baiyunzhou/mybatis-generator.git

1.使用properties配置數據庫信息

2.直接運行

3.分離生成的mapper和自己的mapper

*****

使用mybatis的逆向工程生成JavaBean和mapper以及映射文件只需要三步,這些生成的文件用來做參考是還是很不錯的。

1.maven依賴:

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.zby</groupId>
	<artifactId>mybatis</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<dependencies>
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.0</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.34</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/log4j/log4j -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
		<dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>1.3.5</version>
		</dependency>

	</dependencies>
</project>

2.配置文件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="generateTables" targetRuntime="MyBatis3">
	       
	    <!-- 此處是將 Example 改名為 Criteria -->  
        <plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin">  
            <property name="searchString" value="Example" />  
            <property name="replaceString" value="Criteria" />  
        </plugin>
        
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        
		<commentGenerator>
			<!-- 是否去除自動生成的注釋 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
			<property name="suppressDate" value="true" /> 
		</commentGenerator>
		
		<!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://localhost:3306/taotao" userId="root"
			password="123456">
		</jdbcConnection>
		
		<!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" 
			userId="yycg" password="yycg"> </jdbcConnection> -->

		<!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 
			和 NUMERIC 類型解析為java.math.BigDecimal -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>

		<!-- targetProject:生成PO類的位置 -->
		<javaModelGenerator targetPackage="com.zby.po"
			targetProject=".\src\main\java">
			<!-- enableSubPackages:是否讓schema作為包的后綴 -->
			<property name="enableSubPackages" value="false" />
			<!-- 從數據庫返回的值被清理前后的空格 -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>
		
		<!-- targetProject:mapper映射文件生成的位置 -->
		<sqlMapGenerator targetPackage="com.zby.mapper"
			targetProject=".\src\main\java">
			<!-- enableSubPackages:是否讓schema作為包的后綴 -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>
		
		<!-- targetPackage:mapper接口生成的位置 -->
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="com.zby.mapper" targetProject=".\src\main\java">
			<!-- enableSubPackages:是否讓schema作為包的后綴 -->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		
		<!-- 指定數據庫表 -->
		<table schema="general" tableName="tb_item" domainObjectName="Item"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="true"
			selectByExampleQueryId="false">
			<property name="useActualColumnNames" value="false" />
		</table>
	</context>
</generatorConfiguration>

  這里面的內容基本上看意思就懂了,包括數據庫連接信息,生成規則,數據庫表信息以及需要生成的內容。要修改的話主要修改數據庫連接,生成位置和表的信心了。

3.編寫啟動類:

package com.zby;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class Generator {

	public static void main(String[] args) throws Exception {
		List<String> warnings = new ArrayList<String>();
		boolean overwrite = true;
         //加載上面的配置文件 File configFile = new File("./src/main/resources/generatorconfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }

  這里加載配置文件,執行即可,需要自己修改的是自己配置文件的路徑,保證程序能找到。直接運行這個普通的main程序,代碼會自動生成到我們配置的包下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM