网站建设的利弊,网页设计一级页面,苏州吴中长桥网站建设,东莞建设质监网站1、前言 我们知道 mybatis 中的动态sql语句是基于 OGNL 表达式的。额外补充一点#xff1a;mybatis 中的 #{} 和 ${} #xff0c;可直接跳过。#{}表示一个占位符号#xff0c;#{}接收输入参数#xff0c;类型可以是简单类型#xff0c;pojo、hashmap。
如果接收简单类型mybatis 中的 #{} 和 ${} 可直接跳过。 #{}表示一个占位符号#{}接收输入参数类型可以是简单类型pojo、hashmap。
如果接收简单类型#{}中可以写成value或其它名称。
#{}接收pojo对象值通过OGNL读取对象中的属性值通过属性.属性.属性...的方式获取对象属性值。${}表示一个拼接符号会引用sql注入所以不建议使用${}。
${}接收输入参数类型可以是简单类型pojo、hashmap。
如果接收简单类型${}中只能写成value。
${}接收pojo对象值通过OGNL读取对象中的属性值通过属性.属性.属性...的方式获取对象属性值。 来看看今天的重点对象minidao那么它里边的语法又是什么呢 2、怎么写 怎么写之前先来看一下官方的描述 Jeecg针对springjdbcfreemarker做了封装出了这么一个轻量级持久层可以让Hiberate拥有mybatis一样SQL灵活能力同时支持事务统一、SQL标签能力。 这样是不是已经很明确了呢freemarker 语法那么 freemaker 是什么呢 freemaker 是前端引擎只负责展示没有复杂逻辑而它的语法是 FTL 指令类似于 HTML 标签。 来看看 minidao 中怎么用吧。 2.1 if 判断 #if status?exists status?length gt 0and t.status :status
/#if 2.2 if elese #if status?exists status?length gt 0and t.status :status
#elseand 11
/#if 2.3 list 进行遍历 #list items as item${item.userName}
/#list 更加详细的参考http://qy85.iteye.com/blog/1612093 3、需要注意 既然我们知道了 minidao 中封装了 freemaker 便签那么同样我们也知道在 freemaker ftl中参数是通过 ${}而我们在系统发现很多都是这样用的 :参数那么这又是怎么一回事 4、sql 参数使用方式 4.1 占位符方式-【字段名】 这种方式是我们在系统中最常见的了来看看他的与缺点。 优点: 防止sql注入sql执行计划只解析一次字段值根据类型自动转换不需要手工处理 缺点: 只能传参数原生态值参数为List情况循环体不适用 官方示例 SELECT * FROM employee where 11
#if employee.age ?exists
and age :employee.age
/#if
#if employee.name ?exists
and name :employee.name
/#if
#if employee.empno ?exists
and empno :employee.empno
/#if 4.2 模版语言方式 -【${字段名}】 你要的 ftl 方式的来了。 缺点: Sql直接拼装有SQL注入风险参数值需根据类型手工转换 优点: 可以对参数值进行脚本处理参数为List对象循环体对象必须用该方式用户体验没有变化直接将${}改为: 即可 特点: 持多参数支持参数多层参数为list必须采用模板语言方式 官方示例 SELECT * FROM employee where 11
#if employee.age ?existsand age ${employee.age}
/#if
#if employee.name ?existsand name ${employee.name}
/#if#if employee.empno ?existsand empno ${employee.empno}
/#if 上边之所以提到 mybatis #{} 和 ${} 其实为了体现 :字段名 和 ${} 总之推荐使用占位符的形式。 http://minidao.mydoc.io/?t293640