zoukankan      html  css  js  c++  java
  • 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=".srcmainjava">
    			<!-- enableSubPackages:是否让schema作为包的后缀 -->
    			<property name="enableSubPackages" value="false" />
    			<!-- 从数据库返回的值被清理前后的空格 -->
    			<property name="trimStrings" value="true" />
    		</javaModelGenerator>
    		
    		<!-- targetProject:mapper映射文件生成的位置 -->
    		<sqlMapGenerator targetPackage="com.zby.mapper"
    			targetProject=".srcmainjava">
    			<!-- enableSubPackages:是否让schema作为包的后缀 -->
    			<property name="enableSubPackages" value="false" />
    		</sqlMapGenerator>
    		
    		<!-- targetPackage:mapper接口生成的位置 -->
    		<javaClientGenerator type="XMLMAPPER"
    			targetPackage="com.zby.mapper" targetProject=".srcmainjava">
    			<!-- 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程序,代码会自动生成到我们配置的包下。

  • 相关阅读:
    java面向对象编程(七)--四大特征之多态
    java面向对象编程--Josephu问题(丢手帕问题)
    好文推荐
    树状数组学习笔记
    B2104 矩阵加法
    B2107 图像旋转
    B2128 素数个数
    求细胞数量
    洛谷 CF863A Quasi-palindrome
    30秒搞定所有英文连读
  • 原文地址:https://www.cnblogs.com/zby9527/p/7098916.html
Copyright © 2011-2022 走看看