5、jeecg 笔记之 minidao 条件判断
1、前言
#{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。 如果接收简单类型,#{}中可以写成value或其它名称。 #{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。${}表示一个拼接符号,会引用sql注入,所以不建议使用${}。 ${}接收输入参数,类型可以是简单类型,pojo、hashmap。 如果接收简单类型,${}中只能写成value。 ${}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。
来看看今天的重点对象,minidao,那么它里边的语法又是什么呢?
2、怎么写
Jeecg针对springjdbc+freemarker做了封装,出了这么一个轻量级持久层,可以让Hiberate拥有mybatis一样SQL灵活能力,同时支持事务统一、SQL标签能力。
2.1 if 判断
<#if status?exists && status?length gt 0>and t.status= :status </#if>
2.2 if elese
<#if status?exists && status?length gt 0>and t.status= :status <#else>and 1=1 </#if>
2.3 list 进行遍历
<#list items as item>${item.userName} </#list>
3、需要注意
4、sql 参数使用方式
4.1 占位符方式-【:字段名】
这种方式是我们在系统中最常见的了,来看看他的与缺点。
优点: 防止sql注入;sql执行计划只解析一次;字段值根据类型自动转换,不需要手工处理
缺点: 只能传参数原生态值;参数为List情况循环体不适用
官方示例:
SELECT * FROM employee where 1=1 <#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 1=1 <#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>
上边之所以提到 mybatis #{} 和 ${} ,其实为了体现 :字段名 和 ${}
总之,推荐使用占位符的形式。
5、jeecg 笔记之 minidao 条件判断相关推荐
- C++学习笔记3[条件判断语句]
C++学习目录链接: C++学习笔记目录链接(持续更新中) 文章目录 一.条件判断语句 1.判断语句 二.使用条件运算符进行判断 三.switch语句 四.判断语句嵌套 总结 一.条件判断语句 1.判 ...
- 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符
Python学习笔记之[第一章]基础知识 前言: 一.格式化输出 1.基本格式: 2.练习代码: 二.转义字符 1.基本格式: 2.练习代码: 3.输出结果: 三.输入 1.基本格式: 2.练习代码: ...
- shell脚本编程学习笔记7(XDL)——字符处理命令和条件判断
shell编程学习笔记--字符处理命令和条件判断 1,字符处理 [root@localhost ~]# sort [选项] 文件名 选项: -f: 忽略大小写 -n: 以数值型进行排序,默认使用字符串 ...
- bash 脚本编程2 条件判断 (笔记)
条件判断类型: 整数测试 字符测试 文件测试 条件表达式: [ exppression ] ` expression ` test expression 注意一定要加空格前后都要加 整数比较: -e ...
- Sass学习笔记 -- 初步了解函数、运算、条件判断及循环
函数 sass定义了很多函数可供使用,当然你也可以自己定义函数,以@fuction开始.sass的官方函数链接为:sass fuction,实际项目中我们使用最多的应该是颜色函数,而颜色函数中又以li ...
- 【学习笔记】9、控制流语句-IF条件判断
控制流语句 顺序语句:从左到右,从上到下. 分支语句(条件判断语句):满足不同的条件去运行不同的代码. 循环语句:满足某种特定条件的语句被不断地运行. if条件判断语句 [第一种] if <条件 ...
- vue学习笔记(二)- 数据绑定、列表渲染、条件判断
vue的数据绑定和列表渲染的造轮子 GitHub:八至 作者:狐狸家的鱼 双向数据绑定 Vue中数据的双向绑定-v-model 数据->页面 页面->数据 适用:input.select. ...
- case when then else多个条件_CentOS「linux」学习笔记24:if和case多个条件判断
linux基础操作:主要介绍了if和case判断多个条件. 多条件判断语句if例子: 例子1:if [ $1 -ge 60 ];then echo "接收的参数位1的值大于等于60&quo ...
- 二、Vue基础语法学习笔记——事件监听v-on、条件判断(v-if、v-else-if、v-else、v-show)、循环遍历(v-for遍历数组对象,key属性、检测数组更新)、图书案例、双向绑定
四.事件监听 在前端开发中,我们需要经常和用于交互. 这个时候,我们就必须监听用户发生的时间,比如点击.拖拽.键盘事件等等 在Vue中如何监听事件呢?使用v-on指令 v-on介绍 作用:绑定事件监听 ...
最新文章
- Thrift源码解析--TBinaryProtocol
- 入手ipod touch4
- python交作业的格式_python作业4
- 一张图片学Python
- 商汤校招 | 春笋计划”
- 嵌入式linux面试题库,嵌入式linux面试题解析(二)——C语言部分三
- 带着canvas去流浪系列之一:绘制柱状图
- 多视角子空间学习系列之 CCA 典型相关分析
- 身份证号校验、身份证照片解析(百度API)
- Unity一键自动将多个FBX文件生成AB包+又一些小玩意
- 操作系统( 第二章)知识点总结
- win32项目中使用 skia渲染的一个编译问题
- android绘制立方体带坐标,Android: 直接在bitmap上绘制一个立方体
- OSChina 周日乱弹 —— 这个野男人是谁
- 谷歌分析相关套件简介
- php 点击电话号码直接拨打,在网站上为手机用户提供”点击拨打电话”功能
- fio模拟mysql写入速度_fio 测试工具
- Leetcode——507. Perfect Number
- Python 简易版小工具 | 计算天数
- SHOI2002 百事世界杯之旅