基础识解之mybatis日常语法

mybatis中的#和$的区别? 

#方式能够很大程度防止sql注入。参数有'';
$方式无法防止Sql注入。无''原样赋值;一般用于传入数据库对象,例如传入表名.字段名,sql语句等

<![CDATA[ ]]>关键标签

标明是纯文本的,没有这个的话 <  >  & 字符是不能直接存入XML的,需要转义,而用这个标记则不需要转义而将这些符号存入XML文档。

可以避免未预料的特殊符号导致XML解析出错。

sql语句块

<sqlid="selectBasic"> 
  select * from t 
</sql>
<select id="selectLikeName" parameterType="string" resultType="User" > 
  <include refid="selectBasic"/>
  where name like #{name}
</select>

动态sql标签

<!-- if标签 -->
<if test=""></if>

<!-- choose 与或非标签-->
<choose>
<when test="dateType == 'WEEK' "></when>
<otherwise>
  //TODO something
</otherwise>
</choose>

<!-- in 常用foreach 循环; item 节点对象 -->
<foreach item="item" collection="status" separator="," open="(" close=")" index="index">  
  #{item, jdbcType=TINYINT}
</foreach> 

<!-- 主键自增,同时赋值给传入po类的主键id值 -->
<insert id="insertRole" parameterType="role" useGeneratedKeys="true" keyProperty="id">
   insert into t_role(role_name,note) values (#{roleName},#{note})
</insert>

<!-- 便捷的trim标签 trim代替where/set标签-->
<!-- 使用 if/trim 代替 where(判断参数) - 将 User 类不为空的属性作为 where 条件 -->   
select * from a    
<trim prefix="WHERE" prefixOverrides="AND|OR">  
        <if test="username !=null ">  
            u.username LIKE CONCAT(CONCAT('%', #{username, jdbcType=VARCHAR}),'%')  
        </if>   
    </trim>    
<!-- if/trim代替set(判断参数) - 将 User 类不为空的属性更新 -->   
update a 
<trim prefix="SET" suffixOverrides=","></trim>   
        

 

参考mybatis html文档: https://www.yiibai.com/mybatis/mybaits_trim.html 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/java1314/blog/3081661

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值