个人总结:常用SQL(1)

记性不好,仅作记录,方便整理,共勉!!!

1) < ! [ CDATA [忽略检查的文本]]>

  • 解决属性值中使用XML中的特殊字符。
  • 不逐一的对其进行转义。
  • CDATA段内内容直观的被忽略,无论里面是否包含XML敏感内容,全部被当作普通的文本去看待,列如:
<content>
    <![ CDATA [
        <script language="javascript">
            function sayhello(){    alert("hello!");        }
        </script>
    ] ] >  
</content>

2 ) SUM( IF (逻辑值,逻辑值为真时运算,逻辑值为假时运算) ) AS “别名”

3 ) ON DUPLICATE KEY UPDATE

  • 若该数据的主键值 / UNIQUE KEY 已经在表中存在,则执行更新操作, 即UPDATE 后面的操作。
  • 提高效率,保证原子性

这里写图片描述


这里写图片描述


这里写图片描述


4 ) foreach标签语法及使用

MyBatis的foreach标签应用于多参数的交互如:多参数(相同参数)查询、循环插入数据,以下为几个属性的意思解释:

  • collection:参数名称,根据Mapper接口的参数名确定,也可以使用@Param注解指定参数名

  • item:参数调用名称,通过此属性来获取集合单项的值

  • open:相当于prefix,即在循环前添加前缀

  • close:相当于suffix,即在循环后添加后缀

  • index:索引、下标

  • separator:分隔符,每次循环完成后添加此分隔符

查询

    /**
     * 多个参数查询user集合
     * 
     * @param list
     * @return
     */
    @SuppressWarnings("unchecked")
    List<User> getUsersByListParam(@Param("list") List list);
<!-- 使用foreach接收list参数 -->
        <select id="getUsersByListParam" resultType="com.xuyong.entity.User">
            select * from user
            <foreach collection="list" item="item" open="where id in(" close=")" separator=",">
                #{item}
            </foreach>
        </select>

插入

    /**
     * 使用foreach批量插入
     * 
     * @param users
     * @return
     */
    int insertMultiUsers(@Param("users") List<User> users);
        <!-- 使用foreach批量插入用户-->
        <insert id="insertMultiUsers">
            insert into user(user_name,gender,email,address,dept_id)
            values
            <foreach collection="users" item="user" separator=",">
                (#{user.userName},#{user.gender},#{user.email},#{user.address},#{user.deptId})
            </foreach>
        </insert>

5 ) bind标签语法及使用

  • bind标签执行表达式,创建变量。
  • 可以用于模糊查询,给特定参数加些特殊的业务前缀等等。
 <select id="selectUseIf" parameterType="com.soft.test.model.DynamicTestModel" resultMap="userMap">
        <if test="username != null and username neq ''">
            <bind name="pattern" value="'%' + _parameter.getUsername() + '%'" />
        </if>
        select * from t_user
        <where>
            <if test="username != null and username neq ''">
                username like #{pattern}
            </if>
        </where>
    </select>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值