MybatisX-Generator代码生成

安装插件

MybatisX-Generator是Mybatis-Plus开发的代码生成插件,通过IDEA在插件市场下载并安装该插件
在这里插入图片描述

IDEA连接数据库

在这里插入图片描述

使用MybatisX-Generator

在数据库视图中,选中对应的表,在右键菜单中选择 MybatisX-Generator ,设置生成选项,如下图:
在这里插入图片描述
继续设置生成选项。如下图:
在这里插入图片描述
确认完成后

在entity包中生成实体类User.java

package com.zjff.myshop.entity;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 
 * @TableName user
 */
@Data
public class User implements Serializable {
    /**
     * 编号
     */
    private Integer id;

    /**
     * 用户名
     */
    private String name;

    /**
     * 密码
     */
    private String password;

    /**
     * 密码salt
     */
    private String salt;

    /**
     * 性别
     */
    private Integer gender;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 电话
     */
    private String phone;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 状态
     */
    private Integer status;

    private static final long serialVersionUID = 1L;
}

在mapper包中生成接口类UserMapper.java

package com.zjff.myshop.mapper;

import com.zjff.myshop.entity.User;
import org.apache.ibatis.annotations.Mapper;
/**
* @author hp
* @description 针对表【user】的数据库操作Mapper
* @createDate 2022-12-09 19:50:03
* @Entity com.zjff.myshop.entity.User
*/
@Mapper
public interface UserMapper {

    int deleteByPrimaryKey(Long id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);

}

重要提示
@Mapper注解不会自动生成的,需要手动添加。

在resources/mapper目录下生成映射文件UserMapper.xml

<?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.zjff.myshop.mapper.UserMapper">

    <resultMap id="BaseResultMap" type="com.zjff.myshop.entity.User">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="name" column="name" jdbcType="VARCHAR"/>
            <result property="password" column="password" jdbcType="VARCHAR"/>
            <result property="salt" column="salt" jdbcType="VARCHAR"/>
            <result property="gender" column="gender" jdbcType="TINYINT"/>
            <result property="email" column="email" jdbcType="VARCHAR"/>
            <result property="phone" column="phone" jdbcType="VARCHAR"/>
            <result property="avatar" column="avatar" jdbcType="VARCHAR"/>
            <result property="nickName" column="nick_name" jdbcType="VARCHAR"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
            <result property="remark" column="remark" jdbcType="VARCHAR"/>
            <result property="status" column="status" jdbcType="TINYINT"/>
    </resultMap>

    <sql id="Base_Column_List">
        id,name,password,
        salt,gender,email,
        phone,avatar,nick_name,
        create_time,update_time,remark,
        status
    </sql>

    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from user
        where  id = #{id,jdbcType=INTEGER} 
    </select>

    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
        delete from user
        where  id = #{id,jdbcType=INTEGER} 
    </delete>
    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.zjff.myshop.entity.User" useGeneratedKeys="true">
        insert into user
        ( id,name,password
        ,salt,gender,email
        ,phone,avatar,nick_name
        ,create_time,update_time,remark
        ,status)
        values (#{id,jdbcType=INTEGER},#{name,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR}
        ,#{salt,jdbcType=VARCHAR},#{gender,jdbcType=TINYINT},#{email,jdbcType=VARCHAR}
        ,#{phone,jdbcType=VARCHAR},#{avatar,jdbcType=VARCHAR},#{nickName,jdbcType=VARCHAR}
        ,#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{remark,jdbcType=VARCHAR}
        ,#{status,jdbcType=TINYINT})
    </insert>
    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.zjff.myshop.entity.User" useGeneratedKeys="true">
        insert into user
        <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="id != null">id,</if>
                <if test="name != null">name,</if>
                <if test="password != null">password,</if>
                <if test="salt != null">salt,</if>
                <if test="gender != null">gender,</if>
                <if test="email != null">email,</if>
                <if test="phone != null">phone,</if>
                <if test="avatar != null">avatar,</if>
                <if test="nickName != null">nick_name,</if>
                <if test="createTime != null">create_time,</if>
                <if test="updateTime != null">update_time,</if>
                <if test="remark != null">remark,</if>
                <if test="status != null">status,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                <if test="id != null">#{id,jdbcType=INTEGER},</if>
                <if test="name != null">#{name,jdbcType=VARCHAR},</if>
                <if test="password != null">#{password,jdbcType=VARCHAR},</if>
                <if test="salt != null">#{salt,jdbcType=VARCHAR},</if>
                <if test="gender != null">#{gender,jdbcType=TINYINT},</if>
                <if test="email != null">#{email,jdbcType=VARCHAR},</if>
                <if test="phone != null">#{phone,jdbcType=VARCHAR},</if>
                <if test="avatar != null">#{avatar,jdbcType=VARCHAR},</if>
                <if test="nickName != null">#{nickName,jdbcType=VARCHAR},</if>
                <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
                <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
                <if test="remark != null">#{remark,jdbcType=VARCHAR},</if>
                <if test="status != null">#{status,jdbcType=TINYINT},</if>
        </trim>
    </insert>
    <update id="updateByPrimaryKeySelective" parameterType="com.zjff.myshop.entity.User">
        update user
        <set>
                <if test="name != null">
                    name = #{name,jdbcType=VARCHAR},
                </if>
                <if test="password != null">
                    password = #{password,jdbcType=VARCHAR},
                </if>
                <if test="salt != null">
                    salt = #{salt,jdbcType=VARCHAR},
                </if>
                <if test="gender != null">
                    gender = #{gender,jdbcType=TINYINT},
                </if>
                <if test="email != null">
                    email = #{email,jdbcType=VARCHAR},
                </if>
                <if test="phone != null">
                    phone = #{phone,jdbcType=VARCHAR},
                </if>
                <if test="avatar != null">
                    avatar = #{avatar,jdbcType=VARCHAR},
                </if>
                <if test="nickName != null">
                    nick_name = #{nickName,jdbcType=VARCHAR},
                </if>
                <if test="createTime != null">
                    create_time = #{createTime,jdbcType=TIMESTAMP},
                </if>
                <if test="updateTime != null">
                    update_time = #{updateTime,jdbcType=TIMESTAMP},
                </if>
                <if test="remark != null">
                    remark = #{remark,jdbcType=VARCHAR},
                </if>
                <if test="status != null">
                    status = #{status,jdbcType=TINYINT},
                </if>
        </set>
        where   id = #{id,jdbcType=INTEGER} 
    </update>
    <update id="updateByPrimaryKey" parameterType="com.zjff.myshop.entity.User">
        update user
        set 
            name =  #{name,jdbcType=VARCHAR},
            password =  #{password,jdbcType=VARCHAR},
            salt =  #{salt,jdbcType=VARCHAR},
            gender =  #{gender,jdbcType=TINYINT},
            email =  #{email,jdbcType=VARCHAR},
            phone =  #{phone,jdbcType=VARCHAR},
            avatar =  #{avatar,jdbcType=VARCHAR},
            nick_name =  #{nickName,jdbcType=VARCHAR},
            create_time =  #{createTime,jdbcType=TIMESTAMP},
            update_time =  #{updateTime,jdbcType=TIMESTAMP},
            remark =  #{remark,jdbcType=VARCHAR},
            status =  #{status,jdbcType=TINYINT}
        where   id = #{id,jdbcType=INTEGER} 
    </update>
</mapper>

生成文件的所在位置

如下图所示。
在这里插入图片描述
点击图标,可以在文件间切换,可方便对应功能代码的查看。
用同样的方法,可以很方便地生成项目数据库中其他表对象对应的这3各文件(实体类,数据层接口类,数据层映射文件)

商城项目对应的数据库sql文件

商城项目对应的数据库sql文件,点击下载

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值