Mybatis逆向工程,自动生成javabean和Dao层增删改查mapper&xml

Mybatis逆向工程

Mybatis逆向工程可以自动生成javabean和Dao层

实现步骤:

  1. 引入pom依赖

    https://mvnrepository.com/ 在此网址一次搜索MySQL、MyBatis、MyBatis Generator Core,导入依赖

    	<!--  mybatis依赖 -->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    	<dependency>
    	    <groupId>org.mybatis</groupId>
    	    <artifactId>mybatis</artifactId>
    	    <version>3.5.6</version>
    	</dependency>
    	
    	<!--  mysql依赖 -->
    	<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    	<dependency>
    	    <groupId>mysql</groupId>
    	    <artifactId>mysql-connector-java</artifactId>
    	    <version>8.0.28</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.7</version>
    	</dependency>
    
  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="context" targetRuntime="MyBatis3">
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
            <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
            <plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin">
                <property name="searchString" value="Example$" />
                <property name="replaceString" value="Criteria" />
            </plugin>
            <!-- 去掉生成出来的代码的注解 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true" />
                <property name="suppressDate" value="true" />
            </commentGenerator>
            <!--数据库连接信息 -->
            <jdbcConnection driverClass= "com.mysql.cj.jdbc.Driver"
                            connectionURL= "jdbc:mysql://localhost:3306/myschool?serverTimezone=UTC"
                            userId="root" password="123456"></jdbcConnection>
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
            <!-- 生成模型的包名和位置 -->
            <javaModelGenerator targetPackage="com.demo.bean"
                                targetProject=".\src\main\java">
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
            <!-- 生成映射文件的包名和位置 -->
            <sqlMapGenerator targetPackage="com.demo.mapper"
                             targetProject=".\src\main\java">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
            <!-- 生成DAO的包名和位置 -->
            <javaClientGenerator type="XMLMAPPER"
                                 targetPackage="com.demo.mapper" targetProject=".\src\main\java">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
            <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
            <!-- 配置表格映射 -->
            <!--要生成那些表(更改tableName和domainObjectName就可以) -->
            <table tableName="student"
                   domainObjectName="Student"
                   enableCountByExample="false"
                   enableUpdateByExample="false"
                   enableDeleteByExample="false"
                   enableSelectByExample="false"
                   selectByExampleQueryId="false"/>
            <table tableName="teacher"
                   domainObjectName="Teacher"
                   enableCountByExample="false"
                   enableUpdateByExample="false"
                   enableDeleteByExample="false"
                   enableSelectByExample="false"
                   selectByExampleQueryId="false"/>
           	<table tableName="sc"
                   domainObjectName="Score"
                   enableCountByExample="false"
                   enableUpdateByExample="false"
                   enableDeleteByExample="false"
                   enableSelectByExample="false"
                   selectByExampleQueryId="false"/>
        </context>
    </generatorConfiguration>
    

    注释:

    1. 数据库连接信息需要更改:数据库的账号密码,连接哪个库
    2. 生成模型的包名和位置:生成bean类的位置
    3. 生成映射文件的包名和位置:mapper.java接口位置
    4. 生成DAO的包名和位置:mapper.xml文件位置
    5. table标签:需要生成的表,只需要将数据库中的表名填写到tableName属性上,将bean中的类名填写到domainObjectName属性上即可
    6. 完成以上步骤配置完成
  3. main方法

    test中唯一修改的地方是:generatorConfig.xml配置文件的路径

    package com.dong.test;
    
    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 test {
    	public static void main(String[] args) {
    		try {
    			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);
    	        System.out.println("逆向工程生成成功");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    
  4. 运行,自动生成

    运行test,看到输出:逆向工程生成成功即完成。刷新项目,就可以看到生成的bean和Dao层了

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeMonkey-D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值