代码编织梦想

动态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>

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41957626/article/details/129674575

数据库实验——t-sql编程_小王很nice的博客-爱代码爱编程_t-sql编程

一、实验目的 1.掌握各种运算符和控制语句的使用; 2.掌握系统函数的使用; 3.掌握存储过程的实现。 二、实验学时 2学时 三、实验要求 1.了解T-SQL支持的各种基本数据类型及变量的使用; 2.了解T-SQL各种运算符

代码模板3---基础算法(双指针算法/位运算/离散化/区间合并)-爱代码爱编程

①双指针算法   一般做题:先用暴力做法,然后去看是否存在某种性质(如单调性,维护这个区间的单调性即可) AcWing 799. 最长连续不重复子序列 - AcWing AcWing 800. 数组元素的目标和 - AcWing AcWing 2816. 判断子序列 - AcWing 核心:其中一个指针不会回退!