actual combat 44 动态sql,crud模板

crud

查询select

xml 复制代码
<!--列表查询-->
<select id="selectLoanInfoList" parameterType="com.zyamc.debt.domain.LoanInfo" resultMap="LoanInfoResult">
    select id, loaner_id, loanee_id, contract_number
    from tbl_loan_info
    <where>
        <if test="loanerId != null "> and loaner_id = #{loanerId} </if>
        <if test="loaneeId != null "> and loanee_id = #{loaneeId} </if>
        <if test="contractNumber != null  and contractNumber != ''"> and contract_number like concat('%', #{contractNumber}, '%') </if>
    </where>
    order by `status` desc, expire_date asc
</select>

<!--遍历idList查询-->
<select id="selectLoanInfoByIds" parameterType="Long" resultMap="LoanInfoResult">
    <include refid="selectLoanInfoVo"/>
    <where>
        <if test="ids != null and ids.size() != 0">
            id in
            <foreach collection="ids" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
        </if>
    </where>
</select>

<!--通过id查询-->
<select id="selectLoanInfoById" parameterType="Long" resultMap="LoanInfoResult" flushCache="true">
    <include refid="selectLoanInfoVo"/>
    where id = #{id}
</select>

新增insert

xml 复制代码
<!--条件新增-->
<insert id="insertLoanInfo" parameterType="com.zyamc.debt.domain.LoanInfo" useGeneratedKeys="true"
        keyProperty="id">
    insert into tbl_loan_info
    <trim prefix="(" suffix=")" suffixOverrides=",">
        <if test="loanerId != null">loaner_id, </if>
        <if test="loaneeId != null">loanee_id, </if>
        <if test="contractNumber != null and contractNumber != ''"> contract_number, </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
        <if test="loanerId != null"> #{loanerId}, </if>
        <if test="loaneeId != null"> #{loaneeId}, </if>
        <if test="contractNumber != null and contractNumber != ''"> #{contractNumber}, </if>
    </trim>
</insert>

修改update

xml 复制代码
<!--条件修改-->
<update id="updateLoanInfo" parameterType="com.zyamc.debt.domain.LoanInfo">
    update tbl_loan_info
    <trim prefix="SET" suffixOverrides=",">
        <if test="loanerId != null"> loaner_id =  #{loanerId}, </if>
        <if test="loaneeId != null"> loanee_id = #{loaneeId}, </if>
        <if test="contractNumber != null and contractNumber != ''"> contract_number = #{contractNumber}, </if>
    </trim>
    where id = #{id}
</update>

删除delete

xml 复制代码
<!--根据id删除-->
<delete id="deleteLoanInfoById" parameterType="Long">
    delete
    from tbl_loan_info where id = #{id}
</delete>

<!--根据ids(逗号隔开的字符串)删除-->
<delete id="deleteLoanInfoByIds" parameterType="String">
    delete from tbl_loan_info where id in
    <foreach item="id" collection="array" open="(" separator="," close=")">
        #{id}
    </foreach>
</delete>

全文件

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.zyamc.debt.mapper.LoanInfoMapper">

    <resultMap type="com.zyamc.debt.domain.LoanInfo" id="LoanInfoResult">
            <result property="id" column="id"/>
            <result property="loanerId" column="loaner_id"/>
            <result property="loaneeId" column="loanee_id"/>
            <result property="contractNumber" column="contract_number"/>
    </resultMap>

    <sql id="selectLoanInfoVo">
        select id, loaner_id, loanee_id, contract_number
        from tbl_loan_info
    </sql>

    <!--列表查询-->
    <select id="selectLoanInfoList" parameterType="com.zyamc.debt.domain.LoanInfo" resultMap="LoanInfoResult">
        select id, loaner_id, loanee_id, contract_number
        from tbl_loan_info
        <where>
            <if test="loanerId != null "> and loaner_id = #{loanerId} </if>
            <if test="loaneeId != null "> and loanee_id = #{loaneeId} </if>
            <if test="contractNumber != null  and contractNumber != ''"> and contract_number like concat('%', #{contractNumber}, '%') </if>
        </where>
        order by `status` desc, expire_date asc
    </select>

    <!--遍历idList查询-->
    <select id="selectLoanInfoByIds" parameterType="Long" resultMap="LoanInfoResult">
        <include refid="selectLoanInfoVo"/>
        <where>
            <if test="ids != null and ids.size() != 0">
            id in
                <foreach collection="ids" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        </where>
    </select>

    <!--通过id查询-->
    <select id="selectLoanInfoById" parameterType="Long" resultMap="LoanInfoResult" flushCache="true">
            <include refid="selectLoanInfoVo"/>
            where id = #{id}
    </select>
	
    <!--条件新增-->
    <insert id="insertLoanInfo" parameterType="com.zyamc.debt.domain.LoanInfo" useGeneratedKeys="true"
            keyProperty="id">
        insert into tbl_loan_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="loanerId != null">loaner_id, </if>
            <if test="loaneeId != null">loanee_id, </if>
            <if test="contractNumber != null and contractNumber != ''"> contract_number, </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="loanerId != null"> #{loanerId}, </if>
            <if test="loaneeId != null"> #{loaneeId}, </if>
            <if test="contractNumber != null and contractNumber != ''"> #{contractNumber}, </if>
        </trim>
    </insert>

    <!--条件修改-->
    <update id="updateLoanInfo" parameterType="com.zyamc.debt.domain.LoanInfo">
        update tbl_loan_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="loanerId != null"> loaner_id =  #{loanerId}, </if>
            <if test="loaneeId != null"> loanee_id = #{loaneeId}, </if>
            <if test="contractNumber != null and contractNumber != ''"> contract_number = #{contractNumber}, </if>
        </trim>
        where id = #{id}
    </update>

    <!--根据id删除-->
    <delete id="deleteLoanInfoById" parameterType="Long">
        delete
        from tbl_loan_info where id = #{id}
    </delete>

    <!--根据ids(逗号隔开的字符串)删除-->
    <delete id="deleteLoanInfoByIds" parameterType="String">
        delete from tbl_loan_info where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>

时间条件过滤举例

方式一:

xml 复制代码
<if test="startDate != null"> and lend_date <![CDATA[>=]]> #{startDate}</if>
<if test="endDate != null"> and lend_date <![CDATA[<=]]> #{endDate}</if>

方式二:

xml 复制代码
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
    and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
    and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
相关推荐
云和数据.ChenGuang44 分钟前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys1 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi1 小时前
SQL注入的那些面试题总结
数据库·sql
建投数据2 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
xlsw_3 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
Hacker_LaoYi3 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀3 小时前
Redis梳理
数据库·redis·缓存
独行soc3 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
神仙别闹4 小时前
基于java的改良版超级玛丽小游戏
java
你的微笑,乱了夏天4 小时前
linux centos 7 安装 mongodb7
数据库·mongodb