码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis .xml编译常识

时间:2017-11-09 14:28:18      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:当前时间   stat   open   array   区别   sele   date   转换   col   

Mybatis .xml编译须知

${} 和 #{} 区别
${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。
#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,
比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()。
#{}有预编译的效果,可以防止SQL攻击

Mapper.java传递String[]  Mapper.xml 可以写成类似
     <!-- 获取deptId 通过id -->
    <select id="getDeptIdById" resultType="int" parameterType="string">
        select count(*) from tbl_user
        where deptId in
        <foreach collection="array" item="id" open="(" separator=","
            close=")">
            #{id}
        </foreach>
    </select>

Mapper.java 传递参数list      Mapper.xml 可以写成类似
    /**
     * 保存市场活动线索关系
     *
     * @param list
     * @return
     */
    public int saveClueActivityRelationByList(List<ClueActivityRelation> lists);
    
    
    <!-- 保存线索市场活动关系 -->
    <insert id="saveClueActivityRelationByList" parameterType="ClueActivityRelation">
        insert into tbl_clue_activity_relation(id,activityId,clueId)
        values
        <foreach collection="list" item="obj" separator=",">
            (#{obj.id},#{obj.activityId},#{obj.clueId})
        </foreach>
    </insert>

    
xml中mybatis里面进行运算
    使用<![CDATA[
      可以隔绝 + - 等
    ]]>


sql语句中当前时间
now()
curDate()    



SQL语句:
   cast(x as y)函数
      将x数据类型转换为y数据类型    
   

Mybatis .xml编译常识

标签:当前时间   stat   open   array   区别   sele   date   转换   col   

原文地址:http://www.cnblogs.com/liudongdong666666/p/7808386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!