Mybatis .xml编译常识

Posted 薄荷加冰透心凉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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数据类型    
   























































以上是关于Mybatis .xml编译常识的主要内容,如果未能解决你的问题,请参考以下文章

mybatis学习------打包xml映射文件

maven+mybatis+spring xml文件没有编译到输出路径

Mybatis-Plus-常用实体注解

Maven项目无法找到mybatis的xml映射文件

MyBatis解析

mybatis读取配置文件报错:Could not find resource configuration.xml