Spring Boot使用Mybatis逆向工程

Spring Boot使用Mybatis逆向工程

Mybatis Generator(官网)介绍

mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…)。

企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。

之所以强调单表两个字,是因为Mybatis逆向工程生成的Mapper所进行的操作都是针对单表的,也许你可能会觉得那这就有点鸡肋了,但是在大型项目中,很少有复杂的多表关联查询,所以作用还是很大的。

在Spring Boot中Mybatis Generator的使用方式更为方便快捷。

使用

1.maven引入依赖

 <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>${mysql.version}</version>
             </dependency>
        </dependencies>
</plugin>

2.构建配置文件generatorConfig.xml

配置文件需要修改的内容:

  • 数据库驱动、地址、用户名、密码
  • POJO类、mapper接口、mapper映射文件生成的位置
  • 指定数据表
<?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="mysql" targetRuntime="MyBatis3">

        <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin>

        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/community?serverTimezone=UTC"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <javaModelGenerator targetPackage="com.zjq.community.community.model" 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>

        <javaClientGenerator type="XMLMAPPER" targetPackage="com.zjq.community.community.mapper"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <table tableName="user" domainObjectName="User"></table>
    </context>
</generatorConfiguration>

3.运行maven命令生成User、UserMapper、UserMapper.xml、UserExample

mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate
  • User:数据库相应表字段,包括set get方法
  • UserMapper:增删改查数据库相应表的java接口
  • UserMapper.xml:数据库各种sql语句
  • UserExample:增强增删改查数据库相应表的java方法

4.如何使用

  • 创建Example对象对增删改查加上条件
  • 用Mapper对象调用方法,传入数据库实体对象User和筛选条件example或者id等等
    UserExample example = new UserExample();
    example.createCriteria()
         .andIdEqualTo(dbUser.getId());
            
    userMapper.updateByExampleSelective(updateUser,example);
    userMapper.selectByExample(example);
    userMapper.selectByPrimaryKey(dbUser.getId());

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×