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文件,点击下载