以下是品优购商城项目(一)mybatis逆向工程的完整攻略,包括基本概念、操作步骤和两个示例说明。
基本概念
MyBatis逆向工程是一种自动生成Java代码的工具,可以根据数据库表结构自动生成Java实体类、Mapper接口和Mapper XML文件。使用MyBatis逆向工程可以大大提高开发效率,减少手动编写Java代码的工作量。
操作步骤
以下是使用MyBatis逆向工程生成Java代码的操作步骤:
- 配置数据库连接:在MyBatis逆向工程中,需要配置数据库连接信息,包括数据库驱动、数据库URL、用户名和密码等。
- 配置逆向工程生成规则:在MyBatis逆向工程中,需要配置生成Java代码的规则,包括生成Java实体类的包名、生成Mapper接口的包名、生成Mapper XML文件的路径等。
- 运行逆向工程:配置完成后,可以运行MyBatis逆向工程,自动生成Java实体类、Mapper接口和Mapper XML文件。
示例说明
以下是两个示例,说明如何使用MyBatis逆向工程生成Java代码:
示例1:生成商品分类实体类和Mapper接口
- 配置数据库连接:在MyBatis逆向工程中,需要配置数据库连接信息,包括数据库驱动、数据库URL、用户名和密码等。
- 配置逆向工程生成规则:在MyBatis逆向工程中,需要配置生成Java代码的规则,包括生成Java实体类的包名、生成Mapper接口的包名、生成Mapper XML文件的路径等。
- 运行逆向工程:配置完成后,可以运行MyBatis逆向工程,自动生成商品分类实体类和Mapper接口。
生成的商品分类实体类代码如下:
public class ItemCat implements Serializable {
private Long id;
private Long parentId;
private String name;
private Integer status;
private Integer sortOrder;
private Boolean isParent;
private Date created;
private Date updated;
// 省略getter和setter方法
}
生成的商品分类Mapper接口代码如下:
public interface ItemCatMapper {
int deleteByPrimaryKey(Long id);
int insert(ItemCat record);
int insertSelective(ItemCat record);
ItemCat selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(ItemCat record);
int updateByPrimaryKey(ItemCat record);
}
示例2:生成商品分类Mapper XML文件
- 配置数据库连接:在MyBatis逆向工程中,需要配置数据库连接信息,包括数据库驱动、数据库URL、用户名和密码等。
- 配置逆向工程生成规则:在MyBatis逆向工程中,需要配置生成Java代码的规则,包括生成Java实体类的包名、生成Mapper接口的包名、生成Mapper XML文件的路径等。
- 运行逆向工程:配置完成后,可以运行MyBatis逆向工程,自动生成商品分类Mapper XML文件。
生成的商品分类Mapper 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.pinyougou.mapper.ItemCatMapper">
<resultMap id="BaseResultMap" type="com.pinyougou.pojo.ItemCat">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="parent_id" jdbcType="BIGINT" property="parentId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="sort_order" jdbcType="INTEGER" property="sortOrder" />
<result column="is_parent" jdbcType="BIT" property="isParent" />
<result column="created" jdbcType="TIMESTAMP" property="created" />
<result column="updated" jdbcType="TIMESTAMP" property="updated" />
</resultMap>
<sql id="Base_Column_List">
id, parent_id, name, status, sort_order, is_parent, created, updated
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tb_item_cat
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from tb_item_cat
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.pinyougou.pojo.ItemCat">
insert into tb_item_cat (id, parent_id, name, status, sort_order, is_parent, created, updated)
values (#{id,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{sortOrder,jdbcType=INTEGER}, #{isParent,jdbcType=BIT}, #{created,jdbcType=TIMESTAMP}, #{updated,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.pinyougou.pojo.ItemCat">
insert into tb_item_cat
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="parentId != null">
parent_id,
</if>
<if test="name != null">
name,
</if>
<if test="status != null">
status,
</if>
<if test="sortOrder != null">
sort_order,
</if>
<if test="isParent != null">
is_parent,
</if>
<if test="created != null">
created,
</if>
<if test="updated != null">
updated,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="parentId != null">
#{parentId,jdbcType=BIGINT},
</if>
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
<if test="sortOrder != null">
#{sortOrder,jdbcType=INTEGER},
</if>
<if test="isParent != null">
#{isParent,jdbcType=BIT},
</if>
<if test="created != null">
#{created,jdbcType=TIMESTAMP},
</if>
<if test="updated != null">
#{updated,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pinyougou.pojo.ItemCat">
update tb_item_cat
<set>
<if test="parentId != null">
parent_id = #{parentId,jdbcType=BIGINT},
</if>
<if test="name != null">
name = #{name,jdbcType=VARCHAR},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
<if test="sortOrder != null">
sort_order = #{sortOrder,jdbcType=INTEGER},
</if>
<if test="isParent != null">
is_parent = #{isParent,jdbcType=BIT},
</if>
<if test="created != null">
created = #{created,jdbcType=TIMESTAMP},
</if>
<if test="updated != null">
updated = #{updated,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.pinyougou.pojo.ItemCat">
update tb_item_cat
set parent_id = #{parentId,jdbcType=BIGINT},
name = #{name,jdbcType=VARCHAR},
status = #{status,jdbcType=INTEGER},
sort_order = #{sortOrder,jdbcType=INTEGER},
is_parent = #{isParent,jdbcType=BIT},
created = #{created,jdbcType=TIMESTAMP},
updated = #{updated,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
结论
MyBatis逆向工程是一种自动生成Java代码的工具,可以根据数据库表结构自动生成Java实体类、Mapper接口和Mapper XML文件。使用MyBatis逆向工程可以大大提高开发效率,减少手动编写Java代码的工作量。使用MyBatis逆向工程需要配置数据库连接信息和生成规则,然后运行逆向工程即可自动生成Java代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:品优购商城项目(一)mybatis逆向工程 - Python技术站