Mybatis(二)以学生类配置为例演示在实体类中配置数据库操作——增删改查

    xiaoxiao2021-03-25  61

    注: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

    最新回复(0)