当前位置:网站首页 > 技术博客 > 正文

动态sql的种类有哪些 ?



动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。

使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。

如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。

EmployeeMapperDynamicSQL.java

EmployeeMapperDynamicSQL.xml

EmployeeMapperDynamicSQL.java

EmployeeMapperDynamicSQL.xml

MyBasicTest.java

OGNL

OGNL( Object Graph Navigation Language )对象图导航语言, 这是一种强大的表达式语言,通过它可以非常方便的来操作对象属性。 类似于我们的EL, SpEL等。

注意: xml中特殊符号如”,>,<等这些都需要使用转义字符

访问集合伪属性:

查询的时候如果某些条件没带可能sql拼装会有问题

EmployeeMapperDynamicSQL.xml

EmployeeMapperDynamicSQL.java

MyBasicTest.java

后面多出的and或者or where标签不能解决

EmployeeMapperDynamicSQL.java

EmployeeMapperDynamicSQL.xml

MyBasicTest.java

EmployeeMapperDynamicSQL.java

EmployeeMapperDynamicSQL.xml

MyBasicTest.java

EmployeeMapperDynamicSQL.java

EmployeeMapperDynamicSQL.xml

MyBasicTest.java

EmployeeMapperDynamicSQL.java

EmployeeMapperDynamicSQL.xml

MyBasicTest.java

EmployeeMapperDynamicSQL.java

EmployeeMapperDynamicSQL.xml

注意,MySQL数据库连接属性allowMultiQueries=true,才能批量删除,修改数据。(在连接MySQL的URL后添加参数)。

MyBasicTest.java

Oracle数据库批量保存:

Oracle支持的批量方式:

不只是方法传递过来的参数可以被用来判断,

mybatis默认还有两个内置参数

EmployeeMapperDynamicSQL.java

EmployeeMapperDynamicSQL.xml

bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。

EmployeeMapperDynamicSQL.xml

抽取可重用的sql片段。方便后面引用:

版权声明


相关文章:

  • mq在软件系统中的作用2024-12-06 19:30:05
  • 单臂路由的配置要点和关键命令2024-12-06 19:30:05
  • seq2seq loss2024-12-06 19:30:05
  • 你知道的数据库有哪些2024-12-06 19:30:05
  • 二阶低通滤波器原理2024-12-06 19:30:05
  • java内部类有什么作用2024-12-06 19:30:05
  • 左外连接的sql语句实例2024-12-06 19:30:05
  • error-correction2024-12-06 19:30:05
  • combo box控件使用2024-12-06 19:30:05
  • c语言,用scanf输入数据2024-12-06 19:30:05