实验3---动态SQL

文章展示了如何使用Mybatis进行Java对象的数据存取,重点在于动态SQL的运用,包括if和set标签在更新操作中的应用,以及if和trim标签配合进行角色名称的模糊查询和分页显示。同时,提到了插入、修改、删除角色信息的SQL语句示例。
摘要由CSDN通过智能技术生成

动态SQL

1.实验目的及任务

目的:掌握利用mybatis进行java对象数据存取,并使用动态SQL编写SQL语句的方法。

任务:

(1)完成对角色表的增删改查操作。

(2)使用动态SQL中的if+set编写修改角色update操作。

(3)使用if+trim实现根据角色名称模糊查询角色信息列表,并进行分页显示。

2.实验结果

1.Role

@AllArgsConstructor
@NoArgsConstructor
@Data
public class Role {
	
	private Integer id;   //id
	private String roleCode; //角色编码
	private String roleName; //角色名称
	private Integer createdBy; //创建者
	private Date creationDate; //创建时间
	private Integer modifyBy; //更新者
	private Date modifyDate;//更新时间

}

2.RoleMapper代码

3.RoleMapper.xml文件

 <!--
    采用trim+if的实现方式
    -->
  <select id="getRoleListByRoleName" resultType="cn.smbms.pojo.Role">
        select * from smbms_role
        <trim prefix="where" prefixOverrides="and">
            <if test="roleName!=null and roleName!=''">
                and roleName like CONCAT('%',#{roleName},'%')
            </if>
        </trim>
        order by creationDate desc
        limit #{from},#{pageSize}
    </select>

    <select id="getUserCountByRoleId" resultType="java.lang.Integer">
        SELECT COUNT(*) as count
        FROM
            smbms_role r
            JOIN smbms_user u
        ON u.userRole = r.id
        WHERE
            r.id =#{userRole}
    </select>

    <!--
    新增Role的信息
    -->
    <insert id="add">
        insert into smbms_role(roleCode, roleName, createdBy, creationDate)
        values (#{roleCode}, #{roleName}, #{createdBy}, #{creationDate})
    </insert>
    <!--
    修改
    动态sql的方式
    -->
    <update id="modify">
        update smbms_role
        <set>
            <if test="roleCode!=null">
                roleCode=#{roleCode},
            </if>
            <if test="roleName!=null">
                roleName=#{roleName},
            </if>
            <if test="modifyBy!=null">
                modifyBy=#{modifyBy},
            </if>
            <if test="modifyDate!=null">
                modifyDate=#{modifyDate},
            </if>
        </set>
        where id=#{id}
    </update>
    <!--
    根据角色id删除用户角色信息
    -->
    <delete id="deleteRoleById">
        delete
        from smbms_role
        where id = #{id}
    </delete>

    <!--
    foreach的动态删除
    -->
    <delete id="delete">
        delete from smbms_role where 1=1 and id in
        <foreach collection="array" item="idx" open="(" separator="," close=")">
            #{idx}
        </foreach>
    </delete>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不懂代码的孩子

谢谢大佬

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值