首页 > 其他分享 >mybatis generator 使用与 mybatis 与属性转换

mybatis generator 使用与 mybatis 与属性转换

时间:2023-06-07 18:46:44浏览次数:33  
标签:xml 代码生成 插件 generator mysql mybatis 属性

mybatis generator

MyBatis Generator 是 MyBatis 提供的一个代码生成工具。可以帮我们生成 表对应的持久化对象(po)、操作数据库的接口(dao)、CRUD sql的xml(mapper)。

MyBatis Generator 是一个独立工具,你可以下载它的jar包来运行、也可以在 Ant 和 maven 运行。

引入相关依赖

  • mybatis 依赖和代码生成器插件

<!-- 为了方便,不展示其它配置... -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.21</version>
</dependency>

mybatis 相关依赖


  • 代码生成器插件
    <build>
        <plugins>
            <!--引入generator插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.25</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <!--允许移动生成的文件-->
                    <verbose>true</verbose>
                    <!--允许自动覆盖文件,第一次可覆盖,以后都不可覆盖-->
                    <overwrite>true</overwrite>
                    <!-- 自定义配置文件的名称  默认是generatorConfig.xml -->
                    <configurationFile>
                        src/main/resources/mybatis-generator-config.xml
                    </configurationFile>
                </configuration>
            </plugin>


        </plugins>

    </build>

代码生成器


配置生成器 xml 信息 mybatis-generator-config

<?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>
    <!--数据库驱动-->
    <!--
        如果IDE(eclipse或者idea) 项目里导入了jar包,那么就不需要配置了jar包的绝对路径了
         <classPathEntry    location="e:/project/mybatis/lib/mysql-connector-java-5.0.8-bin.jar"/>
    -->
    <context id="Mysql"   targetRuntime="MyBatis3">
        <!-- 生成 toString-->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
        <!--生成mapper.xml时覆盖原文件-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />

        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="false"/>
        </commentGenerator>
        <!--数据库链接地址账号密码-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://192.168.30.129:3306/stu?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=UTC"
                        userId="root" password="root">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成Model类存放位置-->
        <javaModelGenerator targetPackage="com.ayi.dao.entity" targetProject="src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="mapper" targetProject="src\main\resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Dao类存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.ayi.dao.mapper" targetProject="src\main\java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>


        <!--生成对应表及类名-->
        <table tableName="wallet" domainObjectName="Wallet">
            <!-- 这里可以配置相关的 BaseTypeHandler 类型转换器 -->
            <columnOverride column="balance" javaType="org.joda.money.Money" jdbcType="BIGINT"
                            typeHandler="com.ayi.handler.MoneyTypeHandler"/>
        </table>

    </context>
</generatorConfiguration>

启动相关插件

2、生成的相关类

测试

@SpringBootTest
@RunWith(SpringRunner.class)
public class JoaMoneyApplicationTest {


    @Resource
    private WalletMapper walletMapper;


    @Test
    public void test() {

        Wallet wallet = new Wallet();

        Money cny = Money.ofMinor(CurrencyUnit.of("CNY"), 1000);

        wallet.setBalance(cny);

        wallet.setHolder("ayizzz");

        WalletExample walletExample = new WalletExample();
        walletExample.createCriteria().andIdEqualTo(1L);
        List<Wallet> wallets = walletMapper.selectByExample(walletExample);
        wallets.forEach(System.out::println);
    }
}

标签:xml,代码生成,插件,generator,mysql,mybatis,属性
From: https://www.cnblogs.com/ayizzz/p/17464242.html

相关文章

  • 从嵌套对象中删除属性
     您可以直接从每个模型中删除disabled和error键,而不是遍历每个模型的键和值:Object.entries(myObject.initialState.models).forEach(([key,value])=>{deletevalue.disabled;deletevalue.error;});......
  • 8.7 属性覆盖
    democlassChannel{Stringinfo="www.mldn.cn";//非私有属性;默认default,private不可访问;}classDatabaseChannelextendsChannel{intinfo=12;publicvoidfun(){System.out.println("[父类info成员属性]"+super.info);......
  • mybatis-plus分页插件新版本失效问题
    背景搭建新环境时,升级了下mybatis-plus的版本到3.5.3.1,结果发现原本的分页插件PaginationInterceptor已被剔除,从官网得知需使用PaginationInnerInterceptor,在此记录一下。<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifa......
  • 11. Mybatis的逆向工程
    正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:Java实体类Mapper接口Mapper映射文件1.创建逆向工程的步骤‍①添加依赖和插件‍<!--依赖MyBatis核......
  • WPF学习笔记一 依赖属性及其数据绑定
    本文想通过由浅入深的讲解让读者比较深的理解依赖属性. 首先,我们回顾一下依赖属性的发展历史. 最初,人们提出面向对象编程时,并没有属性这个说法,当时叫做成员变量.一个对象由成员变量和成员函数组成,如下:PublicClassA{PublicintIndex;//成员变量PublicvoidFu......
  • 7、hive shell客户端与属性配置、内置运算符、函数(内置运算符与自定义UDF运算符)
    ApacheHive系列文章1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解2、hive相关概念详解--架构、读写文件机制、数据存储3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表4、hive的使用示例详解-事务表、视图、物......
  • TSS固体放电管的属性大致有哪些?
    之前在写关于GDT放电管与TSS放电管之间的差异时,其实有谈到TSS(固体放电管)它拥有的一些特性,今天优恩小编还是想重复一下,希望更多小伙伴能够记住。TSS,有人叫它固体放电管、也有人叫它半导体放电管,它主要的应用场景就是在一些通讯接口、安防系列、工业、网络系统中,用作于通讯信号端口的......
  • MyBatis - 动态调整xml配置
    MyBatis另类用法:动态载入xml配置,获取渲染好的SQL语句。业务场景:在制作报表系统的时候,经常会有一个很头疼的事情:明明只是写一个SQL的事情,但是系统各种配置,客户用不明白,时间久了,我们自己忘得差不多;这时候,我们就会去思考:要不直接开放写SQL的权限?客户想怎么查怎么查,我们不......
  • 10. Mybatis的缓存
    1.Mybatis的一级缓存‍一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问,一级缓存时默认开启的‍使一级缓存失效的四种情况:1)不同的SqlSession对应不同的一级缓存2)同一个Sql......
  • MyBatis学习笔记(4)—— XML映射文件の结果集(Result Maps)高级结果映射中的集合(collectio
    集合<collectionproperty="posts"ofType="domain.blog.Post"><idproperty="id"column="post_id"/><resultproperty="subject"column="post_subject"/><resultproperty="......