zoukankan      html  css  js  c++  java
  • Mybatis动态sql

    MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力。 如果你有使用 JDBC 或其他 相似框架的经验,你就明白条件地串联 SQL 字符串在一起是多么的痛苦,确保不能忘了空 格或在列表的最后省略逗号。动态 SQL 可以彻底处理这种痛苦。

    <if test=””>条件判断

    问题一、如何防止whereand拼写错误

    方法一、在where后添加1=1

    方法二、使用<where>标签 and都写在每部分的前面

    方法三、使用<trim>标签

    prefix 为整个标签体拼接后的前缀

    PrifixOverriders前缀覆盖,去掉字符串前面多余的字符

    Suffix  为整个标签体拼接后的后缀

    suffixOverriders后缀覆盖,去掉字符串后面多余的字符

    <choose>分支选择

    <set>更新

    问题二、当使用更新语句时,可能出现不合理”,”,使用<set>包围后就可以自动去除逗号

    <foreach>

    collection:指定要遍历的集合

    Item:遍历出的对象赋值给指定变量

    Separator:每个元素之间的分隔符

    Open:遍历出所有结果拼接一个开始字符

    Close:遍历出所有结果拼接一个结束字符

    Index:遍历list时为当前索引,遍历map时为当前key

    #{变量名}访问当前遍历的遍历

    批量插入

     

    也可以使用分号结尾的批量操作,这种方式还可以批量修改,批量删除

     

    Oracle不支持这种方式

    Oracle支持的方式

     

    Mybatis内置参数

    _parameter:代表整个参数

    单个参数:代表这个参数

    多个参数:参数被封装为map,_parameter代表这个map

    _databaseId:如果配置了databaseIdProvider标签

    _databaseId代表当前数据库的别名

     

    <bind>标签:将OGNL的返回值绑定到变量中,方便后来引用这个变量

    例如模糊查询时,自动加%%

     

    <sql>抽取可重用的sql语句

    1、经常要用的列名,或者插入的列名抽取出来

    2、Include来引用已经抽取的sql

    3、Include还可以自定义一些property<sql>标签内部可以通过${}取值(不能用#{})

     

  • 相关阅读:
    跨域踩坑经验总结(内涵:跨域知识科普)
    Nginx location规则匹配
    CentOS 命令
    Centos 修改源
    Ubuntu下获取内核源码
    Ubuntu用户自定义脚本开机启动
    ubuntu 14.04安装x11VNC
    texi格式文件的读取
    更换主机后SSH无法登录的问题
    ubuntu操作系统的目录结构
  • 原文地址:https://www.cnblogs.com/chenkeyu/p/7842946.html
Copyright © 2011-2022 走看看