目录
MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率
但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可以使用MyBatisX插件
官网描述:MyBatisX一款基于 IDEA 的快速开发插件,为效率而生。
官方文档:MybatisX快速开发插件 | MyBatis-Plus
1、MyBatisX 插件安装
2、MyBatisX代码快速生成
① 连接数据库后,选择需要生成的代码对应的表
② 根据需要修改
3、MyBatisPlusX 快速生成 CRUD
3.1、添加
如下图, 输入 insertSelective 后,alt + 回车 选择 第二个选项,就会在 UserMapper.xml 自动生成 SQL 语句
生成的 SQL 语句如下
<insert id="insertSelective">
insert into t_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="uid != null">uid,</if>
<if test="userName != null">user_name,</if>
<if test="age != null">age,</if>
<if test="email != null">email,</if>
<if test="sex != null">sex,</if>
<if test="isDeleted != null">is_deleted,</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="uid != null">#{uid,jdbcType=BIGINT},</if>
<if test="userName != null">#{userName,jdbcType=VARCHAR},</if>
<if test="age != null">#{age,jdbcType=INTEGER},</if>
<if test="email != null">#{email,jdbcType=VARCHAR},</if>
<if test="sex != null">#{sex,jdbcType=INTEGER},</if>
<if test="isDeleted != null">#{isDeleted,jdbcType=INTEGER},</if>
</trim>
</insert>
3.2、删除
输入 deleteBy 后,IDEA 自动补全便会自动提示表的字段
若需要根据多个条件来删除,可以继续输入 and
输入完后,alt + 回车,选择下图选项
生成的 SQL:
<delete id="deleteByUidAndUserName">
delete
from t_user
where uid = #{uid,jdbcType=NUMERIC}
AND user_name = #{userName,jdbcType=VARCHAR}
</delete>
3.3、修改
生成的 SQL:
<update id="updateAgeAndSexByUid">
update t_user
set age = #{age,jdbcType=NUMERIC},
sex = #{sex,jdbcType=NUMERIC}
where uid = #{uid,jdbcType=NUMERIC}
</update>
3.4、查询
生成的 SQL:
<select id="selectAgeAndSexByAgeBetween" resultMap="BaseResultMap">
select age, sex
from t_user
where age between #{beginAge,jdbcType=INTEGER} and #{endAge,jdbcType=INTEGER}
</select>
3.5、查询结果排序
<select id="selectAllOrderByAgeDesc" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from t_user
order by age desc
</select>