首页 > 其他分享 >mybatis-generator 代码生成工具

mybatis-generator 代码生成工具

时间:2023-07-14 19:55:31浏览次数:40  
标签:代码生成 generator warnings DefaultShellCallback mybatis new

官网文档:http://mybatis.org/generator/quickstart.html

 

引入依赖:

   <!-- 代码生成工具https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.4.2</version>
        </dependency>

 

配置文件:

<!DOCTYPE generatorConfiguration PUBLIC
        "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!--如果需要使用 command 的方式生成需要配置数据库驱动的jar包路径-->
    <!--   java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite  -->
<!--    <classPathEntry location="指定数据驱动的磁盘路径"/>-->

    <!--
        context 生成上下文 配置生成规则
            id:唯一标识 随意写
            targetRuntime:生成策略
                MyBatis3DynamicSql 默认的 会生成带动态sql的CRUD
                MyBatis3Kotlin
                MyBatis3            生成通用的查询,可以指定动态where条件
                MyBatis3Simple      只生成简单的CRUD
    -->
    <context id="simple" targetRuntime="MyBatis3Simple">
        <!--数据源-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mytest"
                        userId="root"
                        password="123456"/>
        <!-- pojo JAVA实体生成的规则
            targetPackage:生成到哪个包下面
            targetProject:当前文件的哪个相对路径下
        -->
        <javaModelGenerator targetPackage="com.mybatise.test.generator.pojo" targetProject="src/main/java"/>


        <!--mapper xml映射文件 生成的规则
              targetPackage:生成到哪个包下面
            targetProject:当前文件的哪个相对路径下
        -->
        <sqlMapGenerator targetPackage="com.mybatise.test.generator.pojo" targetProject="src/main/resources"></sqlMapGenerator>
        <!--mapper 接口 生成的规则
            targetPackage:生成到哪个包下面
            targetProject:当前文件的哪个相对路径下
            type:指定生成的方式
                1.使用注解的方式
                2.使用接口绑定的方式生成 (要配置sqlMapGenerator)
        -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.mybatise.test.generator.mapper" targetProject="src/main/java"/>
        <!--配置哪些表进行代码生成
                tableName:表明
                domainObjectName:指定pojo 类名 (可省略自动生成)
                mapperName:指定mapper mapper接口 和 xml映射文件 用的同一个名字 (可省略自动生成)
        -->
        <table tableName="mytable"/>
        <table tableName="person"/>
    </context>
</generatorConfiguration>

 

代码生成方式:

    @Test
    public void test01() throws XMLParserException, IOException, InvalidConfigurationException, SQLException, InterruptedException {
        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);
    }

 

标签:代码生成,generator,warnings,DefaultShellCallback,mybatis,new
From: https://www.cnblogs.com/ruber/p/17554868.html

相关文章

  • mybatis if标签判断Integer类型的值不等于0 (!=''等价于!=0)
    场景当传入的activityInfoDTO属性codeAction的值为0时,需要通过状态(code_action=0或1)来查询数据,code_action类型为Integer<iftest="activityInfoDTO.codeAction!=nullandactivityInfoDTO.codeAction!=''">andcode_action=#{acti......
  • MyBatisPlus
    一、MyBatisPlus简介SpringBoot整合MyBatisPlus入门程序①:创建新模块mybatis-plus-01③:添加相关的起步依赖多余的文件和依赖配置都可以删除了pom.xml文件如下:<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependen......
  • Mybatis把0识别为null解决方法
    问题描述:以下方法写出来的id不能识别到0<iftest="id!=nullandid!=''">ANDid=#{id}</if>原因分析:Mybatis会自动将0识别为null,加上判断里面有空字符串的判断,导致了数据库无法存入0解决方案:加上一个0的判断条件即可<iftest="id!=nullandid!=''orid==0"......
  • mybatis-plus QueryWrapper and or 连用组成查询条件
    我的代码片段StringnumberCode=(String)params.get("numberCode");if(StringUtils.isNotBlank(numberCode)){wrapper.and(qw->qw.eq("number",numberCode).or().eq("code",numberCode));//wr......
  • MyBatis返回resultType=Map的用法, 返回List<Map<String,String>>
    <selectid="statOnlineAndNotlineNumber"resultType="java.util.Map"parameterType="java.lang.String">SELECTonline_stateasstate,COUNT(online_state)asnumberFROMwl_rm_t_vehicle_state<iftest="operatorCode!=nu......
  • mybatis定义
    MyBatis(前身为iBatis)是一种开源的持久层框架,它用于简化数据库访问的过程。它提供了一种将数据库操作与Java对象之间的映射的方式,使得开发人员可以通过配置文件或者注解来定义SQL查询语句,然后通过MyBatis框架来执行这些查询并将结果映射到相应的Java对象中。MyBatis的核心思想是......
  • MyBatis动态表名和字段,减轻很大工作
    在动态sql解析过程,#{}与${}有本质差别1.#{}是基于JDBC的preparedStaement,${}是基于JDBC的Statement2.#{}表示的是预编译的参数,就是替代在SQL语句中的占位符‘?’,并会将参数作为字符串处理;如果要动态传入表名或者字段名,不能使用#{}3.#{}是使用预编译传参,可以预防SQL......
  • MyBatis,mapper找不到方法
       项目目录如下,可以看到是接口映射xml文件的mybatis此时运行项目会出现找不到save方法 解决方法:确保接口与xml文件路径一致在xml文件上再建一级mapper,并将其移入其中可  ......
  • SSM - Mybatis - Example - SQL
     Teacher/Student表CREATETABLE`teacher`(`id`INTNOTNULL,`name`VARCHAR(30)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=INNODBDEFAULTCHARSET=UTF8MB4;INSERTINTOteacher(`id`,`name`)VALUES(1,'秦老师');CREATETABLE`student`(......
  • mybatis快速入门
    MyBatis快速入门1.创建User表,添加数据2.创建模块,导入坐标pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......