mybatis中mapper.xml文件的常用属性及标签讲解

2023-01-08 14:33:25 作者:admin

本文整理自网络,侵删。

目录
  • ${}和#{}的区别
  • 常见的属性
  • 常见标签
    • < sql >标签
    • < where >和< if >标签
    • < set >标签
    • < trim>标签
    • < choose >标签
  • mybatis 的xml文件中标签错误

    ${}和#{}的区别

    #{}会自动在你要插入字段两端 加上引号。例如:你写的是order by #{username},传的是 zhangsan,那么会解析成order by “zhangsan”。

    ${}是将传入的数据直接显示生成在sql中。如:order by ${user_id},如果传入的值是111,那么解析成sql时的值为order by 111 如果传入的值是id,则解析成的sql为order by id.

    #{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符 。

    $ {}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。在使用order by 时,就需要使用$;

    常见的属性

    属性 作用
    namespace 对应接口的路径
    id 表示此段sql执行语句的唯一标识,也是接口的方法名称【必须一致才能找到方法】
    parameterType 表示该sql语句中需要传入的参数, 类型要与对应的接口方法的类型一致【可选】
    resultMap 定义出参,调用已定义的映射管理器的id值
    resultType 定义出参,匹配普通Java类型或自定义的pojo【出参类型若不指定,将为语句类型默认类型,如语句返回值为int】

    常见标签

    < sql >标签

    该标签主要定义复用的sql语句片段,在执行的sql语句标签直接引用即可。可以提高编码效率、简化代码和提高可读性。

    需要配置id熟悉,表示该sql片段的唯一标识。

    引用:通过<include refid=" " / >标签引用,refid的值就是< sql>的id属性的值。

    <sql id="Base_Column_List">    id, question, answer   </sql>  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">    select     <include refid="Base_Column_List" />    from java    where id = #{id,jdbcType=BIGINT}  </select>

    < where >和< if >标签

    < where > : 主要用来替换sql语句中的where字段,他的作用主要是用来简化sql语句中where条件判断的书写的

    < if >:条件判断标签,配置属性test=" 条件字符串 ",判断是否满足条件,满足则执行,不满足则跳过。

     <select id="selectByParams" parameterType="map" resultType="user">    select * from user    <where>      <if test="id != null ">id=#{id}</if>      <if test="name != null and name.length()>0" >and name=#{name}</if>      <if test="age != null and age.length()>0">and age = #{age}</if>    </where>  </select> 

      

    如果当id值为空时,此时打印的sql应是:select * from user where name=“xx” and age=“xx”

    阅读剩余部分

    相关阅读 >>

    sql server 怎么创建数据库?

    .net framework sql server 数据提供程序连接池

    adodb 入门第22页

    sql删除语句有哪些

    mybatis中防止sql注入讲解

    一小时迅速入门mybatis之prepared statement与符号的使用

    sql的九个常用语句是什么

    c#操作sqlite数据库帮助类详解

    阿里规范不建议多表join,可这sql要怎么写啊?

    mybatis4 之mybatis动态sql的实现代码

    更多相关阅读请进入《sql》频道 >>


    数据库系统概念 第6版
    书籍

    数据库系统概念 第6版

    机械工业出版社

    本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



    在线咨询 拨打电话