maven插件自动生成pojo以及mapper映射文件

本文介绍如何使用MyBatis Generator插件,根据已设计的数据库表自动生成实体类(POJO)、接口(DAO)及映射文件(Mapper)。通过配置maven依赖和generatorConfig.xml文件,实现代码快速生成,提高开发效率。

写代码的时候新建了一张表,是不是觉得创建实体类以及映射文件贼鸡儿烦?
在这里插入图片描述
问题不大:有一个东西叫做Mybatis-generator

这玩意可以根据我们已经设计好的数据库表帮助我们自动生成实体类(pojo)、接口(dao)、映射文件(mapper),这样就可以避免每次使用表的时候手动创建一些类和映射文件,节约了大量的时间。
简单粗暴易上手,话不多少直接开搞。

首先创建一个maven项目,这一步我就不多说了,IDEA一站式操作,没啥好说的。

创建完项目,我们先创建一张表格备用sys_user 字段如下:
在这里插入图片描述
下面引入一下maven依赖:

 <dependency>
     <groupId>org.mybatis.generator</groupId>
     <artifactId>mybatis-generator-core</artifactId>
     <version>1.3.2</version>
     <scope>compile</scope>
     <optional>true</optional>
 </dependency>
<plugin>
    <groupId>org.mybatis.generator</groupId>
     <artifactId>mybatis-generator-maven-plugin</artifactId>
     <version>1.3.2</version>
     <configuration>
  			<configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
    		<overwrite>true</overwrite>
       		<verbose>true</verbose>
   </configuration>
   <dependencies>
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.44</version>
       </dependency>
       <dependency>
           <groupId>tk.mybatis</groupId>
           <artifactId>mapper</artifactId>
           <version>3.3.9</version>
       </dependency>
   </dependencies>
</plugin>

下面创建我们核心的gengratorConfig.xml,文件的位置可以自己选择,但是务必要和maven里面configurationFile的路径一致。

可以自定义需要Pojo继承的实体类

/**
 * create by c-pown on 2020-05-28
 */
public class BaseBean  {

}

mapper接口继承自定义的BaseMapper

/**
* @desc 自己的mapper,可以继承mybatis一些实用接口
* @author c-pown
* @date 2020-05-29
*/
public interface MyMapper<T>  {
    //TODO
    //FIXME 特别注意,该接口不能被扫描到,否则会出错
}

最重要的:

<?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>
    <properties resource="application-dev.properties"/>

    <context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
    <property name="beginningDelimiter" value="`"/>
    <property name="endingDelimiter" value="`"/>

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <!-- mapper接口继承自定义的BaseMapper -->
            <property name="mappers" value="com.example.demo.util.MyMapper"/>
        </plugin>

        <!--数据库连接信息-->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                    connectionURL="jdbc:mysql://localhost:3306/test"
                    userId="root"
                    password="root">
    </jdbcConnection>

    <javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
        <!-- 基类继承BaseBean -->
        <property name="rootClass" value="com.example.demo.model.BaseBean"/>
    </javaModelGenerator>

    <!-- 对于生成的mapper所在目录 -->
    <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>

    <!-- 配置mapper对应的java映射 -->
    <javaClientGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java"
                         type="XMLMAPPER"/>


    <table tableName="sys_user"></table>

</context>
</generatorConfiguration>

上面这些都配置完成以后,直接点击maven插件
在这里插入图片描述
看下结果:
在这里插入图片描述
成功了,看下文件:

package com.example.demo.mapper;

import com.example.demo.model.SysUser;
import com.example.demo.util.MyMapper;

public interface SysUserMapper extends MyMapper<SysUser> {
}
package com.example.demo.model;

import javax.persistence.*;

@Table(name = "sys_user")
public class SysUser extends BaseBean {
    private String id;

    private String username;

    private String nickname;

    private String password;

    private Integer age;

    private Integer sex;

    private Integer job;

    /**
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @return username
     */
    public String getUsername() {
        return username;
    }

    /**
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * @return nickname
     */
    public String getNickname() {
        return nickname;
    }

    /**
     * @param nickname
     */
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    /**
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * @return age
     */
    public Integer getAge() {
        return age;
    }

    /**
     * @param age
     */
    public void setAge(Integer age) {
        this.age = age;
    }

    /**
     * @return sex
     */
    public Integer getSex() {
        return sex;
    }

    /**
     * @param sex
     */
    public void setSex(Integer sex) {
        this.sex = sex;
    }

    /**
     * @return job
     */
    public Integer getJob() {
        return job;
    }

    /**
     * @param job
     */
    public void setJob(Integer job) {
        this.job = job;
    }
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.demo.mapper.SysUserMapper" >
  <resultMap id="BaseResultMap" type="com.example.demo.model.SysUser" >
    <!--
      WARNING - @mbg.generated
    -->
    <result column="id" property="id" jdbcType="VARCHAR" />
    <result column="username" property="username" jdbcType="VARCHAR" />
    <result column="nickname" property="nickname" jdbcType="VARCHAR" />
    <result column="password" property="password" jdbcType="VARCHAR" />
    <result column="age" property="age" jdbcType="INTEGER" />
    <result column="sex" property="sex" jdbcType="INTEGER" />
    <result column="job" property="job" jdbcType="INTEGER" />
  </resultMap>
</mapper>

完美!
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值