Mybatis反向生成

最近在写一个接口中要自己手动建表和对应Mapper文件,这张表80个字段,我手动建立的文件总是会出现很多细小的问题,重点是还很难发现。主要是字段太多了,看的脑壳疼

所以百度搜了很多可以根据数据库表自动生成对应的pojo实体类和Mapper文件

1、创建一个generatorConfig.xml文件,注意:这个文件一定要放到src目录,否则在读取配置文件的时候可能会报空指针异常

<?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="testTables" targetRuntime="MyBatis3">
                <commentGenerator>
                    <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                    <property name="suppressAllComments" value="true" />
                </commentGenerator>

                <!--数据库连接的信息:驱动类、连接地址、用户名、密码
                <jdbcConnection
                    driverClass="com.mysql.jdbc.Driver"
                    connectionURL="jdbc:mysql://localhost:3306/taotao"
                    userId="root"
                    password="root">
                </jdbcConnection>-->

                <!--<jdbcConnection
                    driverClass="oracle.jdbc.OracleDriver"
                    connectionURL="jdbc:oracle:thin:@远程数据库IP:1521:SID"
                    userId="rwkdev"
                    password="rwkdev">
                </jdbcConnection>-->
                 <jdbcConnection                    driverClass="oracle.jdbc.OracleDriver"                    connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:orcl"                    userId="root"                    password="admin">                </jdbcConnection>
                <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和  NUMERIC 类型解析为java.math.BigDecimal -->
                <javaTypeResolver>
                    <property name="forceBigDecimals" value="false" />
                </javaTypeResolver>

                <!-- targetProject:生成Model类的位置 -->
                <javaModelGenerator targetPackage="com.pojo" targetProject=".\src">
                    <!-- enableSubPackages:是否让schema作为包的后缀 -->
                    <property name="enableSubPackages" value="false" />
                    <!-- 从数据库返回的值被清理前后的空格 -->
                    <property name="trimStrings" value="true" />
                </javaModelGenerator> 

                <!-- targetProject:mapper映射文件生成的位置 -->
                <sqlMapGenerator targetPackage="com.dao.mapper"  targetProject=".\src">
                    <!-- enableSubPackages:是否让schema作为包的后缀 -->
                    <property name="enableSubPackages" value="false" />
                </sqlMapGenerator>

                <!-- targetPackage:mapper接口生成的位置 -->
                <javaClientGenerator type="XMLMAPPER" targetPackage="com.dao"  targetProject=".\src">
                    <!-- enableSubPackages:是否让schema作为包的后缀 -->
                    <property name="enableSubPackages" value="false" />
                </javaClientGenerator>

                <!-- 指定数据库表 ,生成对应表及类名,可以生成多个,复制下面这行代码改名-->
                 <table domainObjectName="FraudulentOrder" tableName="T_DFP_FRAUDULENT_ORDER" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
            </context>
</generatorConfiguration>

自己使用的时候只需要修改上面的jdbcConnection配置中的远程IP、端口、用户名、密码;还有一个就是domainObjectName属性中的值是你表生成的对应的实体类名,tableName对应你的表

2、在创建一个GeneratorSqlmap.java类

        public class GeneratorSqlmap {
            public void generator() throws Exception{
                List<String> warnings = new ArrayList<String>();
                boolean overwrite = true;
                //指定 逆向工程配置文件
                File configFile = new File("src/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);
            }
            public static void main(String[] args) throws Exception {
                try {
                    GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
                    generatorSqlmap.generator();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

3、添加三个jar 下载地址: https://www.lanzous.com/b00t84e8j   密码:crdl

原文地址:https://www.cnblogs.com/myfaith-feng/p/12202500.html

时间: 2024-10-09 13:52:02

Mybatis反向生成的相关文章

mybatis 反向生成步骤

Mybatis 反向生成. 反向生成的步骤: 反向生成的文件 打开文件夹显示 3.打开generator.xml文件 更改配置信息  路径一般情况下用英文  中文的路径有些会识别不了  或产生乱码 4.在电脑的左下角      左击打开  点击  运行  输入 cmd  按回车键 5.输入 6. 7. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PU

mybatis反向生成sql,基本的增删改查

用到的几个文件 MyBatisGeneratorProxy.java package com.timestech.wsgk.test.tools; import static org.mybatis.generator.internal.util.ClassloaderUtility.getCustomClassloader; import static org.mybatis.generator.internal.util.messages.Messages.getString; import

Mybatis 反向生成 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"> <

数据库表反向生成(一)mybatis-generator与IDEA的集成

在Dao层,通过数据库表反向生成,可以节省我们很多的精力,把更多的精力投入复杂的业务中. 数据库表反向生成,指的是通过数据库如mysql中的库表schema生成dao层读写表的基础代码,包括model(entity)和dao(mapper). 在本文中我先介绍java中mybatis-generator的反向生成.我们在下一篇文章中会介绍django中ORM的反向生成. mybatis-generator的反向生成有两种方式 1)源码打包生成mybatis-generator.jar,通过执行j

反向生成

<?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"> <

谨慎使用MyBatis自动生成Where语句

最近监控到类似这样一个慢查询: select delete_flag,delete_time from D_OrderInfo WHERE ( OrderId is not null and OrderId = N'xxxx') D_OrderInfo表上有一个OrderId的索引,但OrderId字段是Varchar类型.由于开发框架MyBatis自动生成Where条件不会指定参数类型,字符串类型的参数到了SQLServer里就自动成了NVARCHAR(4000)类型了,坑人的是,不指定参数类

eclipse从数据库逆向生成Hibernate实体类(eclipse中反向生成hibernate实体类+jpa注释)

eclipse从数据库逆向生成Hibernate实体类 做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再"自己"建立一变VO.意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表:要么就先进行数据库表设计,再逆向生成实体类.没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计. 原因是: 1. 1.5倍工作量,浪费时间.(时间对公司来说很重要) 2. 无法

数据库表反向生成(二)django ORM inspectdb

在前一篇我们说了,mybatis-generator反向生成代码. 这里我们开始说如何在django中反向生成mysql model代码. 我们在展示django ORM反向生成之前,我们先说一下怎么样正向生成代码. 正向生成,指的是先创建model.py文件,然后通过django内置的编译器,在数据库如mysql中创建出符合model.py的表. 反向生成,指的是先在数据库中create table,然后通过django内置的编译器,生成model代码. 1.准备工作 创建django工程以及

mybatis generator生成代码工具的使用

mybatis generator生成代码工具的使用, 附demo 使用Hibernate时, 可以很方便的生成model,dao,和映射配置文件.在mybatis里, 也有生成器, 即mybatis generator, 简称MBG. 下面为大家介绍一下MBG的使用. 下载mybatis-generator-core-1.3.1-bundle.zip之后, 解压得到mybatis-generator-core-1.3.1.jar, 即生成器的jar包, 将mybatis-3.0.6.jar和m