mybatis06:动态sql:就是在拼接sql(+sql语句案例)
文章目录
- mybatis06:动态sql:就是在拼接sql(+sql语句案例)
- 前言:
- 一、if(用来逻辑判断)(test里面写判断表达式)
- [二、choose_when_otherwise 类比于 Switch_case_default](#二、choose_when_otherwise 类比于 Switch_case_default)
- [三、trim (where, set) where,set就够用了,我们可以不用使用trim去定制化了](#三、trim (where, set) where,set就够用了,我们可以不用使用trim去定制化了)
- 四、foreach:
- 五.学会写sql语句:😊😊😊
-
- UserMapper接口:
- [UserMapper.xml :](#UserMapper.xml :)
- UserMapper接口:
- [UserMapper.xml :](#UserMapper.xml :)
- 总结
前言:


提示:以下是本篇文章正文内容:
一、if(用来逻辑判断)(test里面写判断表达式)
xml
// if + where
<select id="queryBlogIF" parameterType="map" resultType="com.zhu.pojo.Blog">
select *from blog
<where>
<if test="title != null">
title = #{title}
</if>
<if test="author != null">
and author = #{author}
</if>
</where>
</select>
二、choose_when_otherwise 类比于 Switch_case_default
xml
// choose_when_otherwise + where
<select id="getTitleIF2" parameterType="map" resultType="Blog">
select *from mybatis.blog
<where>
<choose>
<when test="title!=null">
title=#{title}
</when>
<when test="author!=null">
author=#{author}
</when>
<otherwise>
views=#{views}
</otherwise>
</choose>
</where>
</select>
三、trim (where, set) where,set就够用了,我们可以不用使用trim去定制化了
xml
// update + set
<update id="updateBlog" parameterType="map">
update mybatis.blog
<set>
<if test="title!=null">
title=#{title},
</if>
<if test="author!=null">
author=#{author},
</if>
<if test="views!=null">
views=#{views},
</if>
</set>
where id=#{id}
</update>
// 如果where元素 没有按照正常套路出牌,我们可以通过 自定义trim元素 来 定制where元素的功能
// 例如:和where元素等价的自定义trim元素为:
<trim prefix="WHERE" prefixOverrides="AND|OR">
......
</trim>
// 和set元素等价的自定义trim元素表示为:
<trim prefix="SET" suffixOverrides="," >
......
</trim>
四、foreach:

五.学会写sql语句:😊😊😊
UserMapper接口:

UserMapper.xml :

UserMapper接口:
java
public interface UserMapper {
// add,增加用户信息
int add(User user)throws Exception;
// getLoginUser,通过userCode获取User
User getLoginUser(@Param("userCode") String userCode)throws Exception;
// getUserList,通过条件查询-userList
List<User> getUserList(@Param("userName")String userName,@Param("userRole")int userRole,
@Param("from")int currentPageNo,@Param("pageSize")int pageSize)throws Exception;
// getUserCount,通过条件查询-用户表记录数
int getUserCount(@Param("userName") String userName,@Param("userRole") int userRole)throws Exception;
// deleteUserById,通过userId删除user
int deleteUserById(@Param("delId") int delId)throws Exception;
// getUserById,通过userId获取user
User getUserById(@Param("id")int id)throws Exception;
// modify,修改用户信息
int modify(User user)throws Exception;
// updatePwd,修改当前用户密码
int updatePwd( @Param("id")int id,@Param("pwd") String pwd)throws Exception;
}
UserMapper.xml :
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.my.dao.user.UserMapper">
<!--增加用户信息-->
<insert id="add" parameterType="User">
insert into smbms_user(id,userCode,userName,userPassword,gender,birthday,phone,address,userRole,createdBy,creationDate)
values(#{id},#{userCode},#{userName},#{userPassword},#{gender},#{birthday},#{phone},#{address},#{userRole},#{createdBy},#{creationDate})
</insert>
<!--通过userCode获取User-->
<select id="getLoginUser" parameterType="String" resultType="User">
select * from smbms_user where userCode = #{userCode}
</select>
<!--通过条件查询-userList-->
<select id="getUserList" resultType="User">
select * from smbms_user
<where>
<if test="userName!=null">
userName = #{userName}
</if>
<if test="userRole!=0">
and userRole = #{userRole}
</if>
</where>
limit #{from},#{pageSize}
</select>
<!--通过条件查询-用户表记录数-->
<select id="getUserCount" parameterType="String" resultType="_int">
select count(*) from smbms_user
<where>
<if test="userName!=null">
userName = #{userName}
</if>
<if test="userRole!=0">
and userRole = #{userRole}
</if>
</where>
</select>
<!--通过userId删除user-->
<delete id="deleteUserById" parameterType="_int">
delete from smbms_user where id = #{delId}
</delete>
<!--通过userId获取user-->
<select id="getUserById" parameterType="_int" resultType="User">
select * from smbms_user where id = #{id}
</select>
<!--修改用户信息-->
<update id="modify" parameterType="User">
update smbms_user
<set>
<if test="userCode!=null">
userCode = #{userCode},
</if>
<if test="userName!=null">
userName = #{userName},
</if>
<if test="userPassword!=null">
userPassword = #{userPassword},
</if>
<if test="gender!=null">
gender = #{gender},
</if>
<if test="birthday!=null">
birthday = #{birthday},
</if>
<if test="phone!=null">
phone = #{phone},
</if>
<if test="address!=null">
address = #{address},
</if>
<if test="userRole!=null">
userRole = #{userRole},
</if>
<if test="modifyBy!=null">
modifyBy = #{modifyBy},
</if>
<if test="modifyDate!=null">
modifyDate = #{modifyDate}
</if>
</set>
where id = #{id}
</update>
<!--修改当前用户密码-->
<update id="updatePwd">
update smbms_user set userPassword = #{pwd}
where id = #{id}
</update>
</mapper>
总结
提示:这里对文章进行总结:
💕💕💕
熟练的书写sql语句是一件十分重要的事情!!!🤦♂️🤦♂️🤦♂️