zoukankan      html  css  js  c++  java
  • Mybatis .xml编译常识

    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数据类型    
       

  • 相关阅读:
    Python的Crypto模块使用:自动输入Shell中的密码
    算法之动态规划初步(Java版)
    基于ZXing的二维码,你可以这样改造它
    Java字符编码的转化问题
    第一个Hadoop程序——WordCount
    Hadoop的学习前奏(二)——Hadoop集群的配置
    Linux下的一些问题收集及解决方法(二)
    Python的捕虫笔记
    Hadoop的学习前奏(一)——在Linux上安装与配置Hadoop
    Android SnackBar:你值得拥有的信息提示控件
  • 原文地址:https://www.cnblogs.com/liudongdong666666/p/7808386.html
Copyright © 2011-2022 走看看