注:1、针对占位符#{}和${}的说明,#{}表示预处理方式的提交数据,${}表示直接提交数据。
并且,在使用#{}占位符的时候,数据是不需要添加单引号的,而${}使用的时候必须用单引号包裹,所以${}一般只使用在模糊查询中。
一、新增学生记录
<!-- 新增 -->
<insert id="insert" parameterType="student">
insert into student(s_id,s_name,s_age,s_loginName,s_passWord) values('${s_id}','${s_name}','${s_age}','${s_loginName}','${s_passWord}')
</insert>
二、修改
<!-- 简单修改 -->
<update id="insert" parameterType="student">
update student set s_name=#{s_name},s_age=#{s_age},s_loginName=#{s_loginName},s_passWord=#{s_passWord}
</update>
三、删除
<!-- 简单删除 -->
<delete id="deleteSimple" parameterType="string">
delete from student where s_id =#{s_id}
</delete>
<!-- 批量删除 -->
<delete id="deletePl" parameterType="list">
<if test="list != null and list.size()>0">
<!-- 使用if判断 如果list为null对象或者size()>0,则不执行删除, -->
delete from student where s_id in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</if>
</delete>
四、查询
1、简单查询,以通过t_id查询演示
<select id="selectStudentByT_id" resultMap="student" parameterType="string">
select * from student where t_id=#{t_id}
</select>
2、模糊查询
<!-- #和$都表示占位符,#表示预处理方式查询 -->
<!-- 模糊查询 需要使用$来获取查询句柄,使用非预处理的方式来查询-->
<select id="selectLike" resultMap="student" parameterType="student">
select * from student where s_name like '%${s_name}%'
</select>
3、分页查询
<!-- 分页查询 -->
<select id="selectLimit" resultMap="student" parameterType="map">
select * from student limit #{start},#{limit}
</select>
五、sql语句动态拼接(if,trim,choose三种条件判断方式)
1、简单的使用if判断的sql语句动态拼接
<!-- sql语句动态拼接 -->
<select id="dynamicSelectIf" resultMap="student" parameterType="student">
select * from student where 1=1
<if test="s_name!=null">
and s_name= #{s_name}
</if>
<if test="s_age!=null">
and s_age=#{s_age}
</if>
</select>
2、使用choose做条件判断的动态sql语句拼接
<!-- sql语句动态拼接2 -->
<select id="dynamicSelect2" resultMap="student" parameterType="student">
select * from student where 1=1
<choose>
<when test="s_name!=null">
and s_name= #{s_name}
</when>
<when test="s_age!=null">
and s_age=#{s_age}
</when>
<otherwise>
order by s_name asc
</otherwise>
</choose>
</select>
3、使用trim做条件判断的动态sql拼接
<!-- sql语句动态拼接3 -->
<select id="dynamicSelect3" resultMap="student" parameterType="student">
select * from student
<trim prefix="where" prefixOverrides="and |or ">
<!-- prefixoverride:去掉第一个and或者是or或者是like -->
<if test="s_name!=null">
and s_name like '%${s_name}%'
</if>
<if test="s_age!=0">
and s_age = #{s_age}
</if>
</trim>
</select>
转载请注明原文地址: https://ju.6miu.com/read-39758.html