Mybatis中的常用OGNL表达式
作者:Moss 发布时间:2023-09-29 10:48:33
标签:Mybatis,OGNL,表达式
在Mybatis的动态SQL和${}形式的参数中都用到了OGNL表达式。
Mybatis常用的OGNL表达式如下
1、e1 or e2:或
<if test="userEmail != null or userEmail == '1'">
</if>
2、e1 and e2:且
<if test="userEmail != null and userEmail != ''">
</if>
3、e1 == e2 或e1 eq e2:相等
<if test="userEmail == null and userEmail == ''">
</if>
4、e1 != e2 或 e1 neq e2:不等
<if test="userEmail != null and userEmail != ''">
</if>
5、e1 lt e2:小于
<if test="age lt 10">
#{userEmail,jdbcType=VARCHAR},
</if>
6、e1 lte e2:小于等于
7、e1 gt e2:大于
8、e1 gte e2:大于等于
9、 e1 + e2(加),e1 - e2(减),e1 * e2(乘),e1/e2(除),e1%e2(余)
10、!e或not e:非,取反
11、e.method(args):调用对象方法
<if test="list != null and list.size() > 0 ">
#{userEmail,jdbcType=VARCHAR},
</if>
12、e.property:对象属性值
<!-- 多接口参数的查询方法(@Param + javaBean方式) -->
<select id="selectByUserIdAndEnabledUseBean" resultMap="BaseResultMap">
select r.id, r.role_name, r.enabled, r.create_by, r.create_time,
u.user_name as "user.userName", u.user_email as "user.userEmail"
from sys_user u
inner join sys_user_role ur on u.id = ur.user_id
inner join sys_role r on ur.role_id = r.id
where u.id = #{user.id} and r.enabled = #{role.enabled}
</select>
13、e1[e2]:按索引取值(List、数组和map)
14、@class@method(args):调用类的静态方法
<bind name="name" value="@ex.mybatis.rbac.mapper.UserMaperTest@setName()"/>
15、@class@field:调用类的静态字段值
<bind name="name" value="@ex.mybatis.rbac.mapper.UserMaperTest@NAME"/>
Mybatis jstl表达式
写了一个特别简单的小例子,使用struts1+mybatis+spring,,,其中做了一个增删改查,
结果遇到了一个特别无知的错误!以后一定要记住,不能再犯了!
我在数据库中建的表的字段是xx_xx这种格式的,例如notice_title,在pojo实体类中定义的属性是noticeTitle这种形式的,
在做查找所有数据的时候,sql语句中对各个字段起了别名,但是别名没有与pojo类的属性名对应,导致resultMap对应的类不能与自己起的别名对应,导致不能进行实体类封装值
public ActionForward show(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
List<Notice> noticeList = noticeService.getNoticeList();
request.setAttribute("noticeList", noticeList);
return mapping.findForward("begin");
}
<table border="1">
<tr>
<td>选择</td>
<td>主题</td>
<td>内容</td>
<td>发表时间</td>
<td>备注</td>
<td>编辑人员</td>
</tr>
<c:forEach var="notices" items="${requestScope.noticeList }" >
<tr>
<td><input type="checkbox" name="keyid" value="${notices.keyid}"/></td>
<td>${notices.noticeTitle}</td>
<td>${notices.noticeContent }</td>
<td>${notices.noticePublishTime}</td>
<td>${notices.noticeComment}</td>
<td>${notices.noticeEditor }</td>
</tr>
</c:forEach>
</table>
来源:https://blog.csdn.net/q283614346/article/details/83119073
0
投稿
猜你喜欢
- 由于众所周知的原因,maven的库在中国大陆非常慢。我在百度上搜到的大部分文章都是直接在~/.m2/settings.xml 加入以下内容&
- 1.SQL注入:程序向后台数据库传递SQL时,用户提交的数据直接拼接到SQL语句中并执行,从而导入SQL注入攻击。字符型注入:黑色部分为拼接
- [LeetCode] 2. Add Two Numbers 两个数字相加You are given two non-empty&n
- java如何实现ftp上传?如何创建文件夹?最佳答案:准备条件:java实现ftp上传用到了commons-net-3.3.jar包首先建立
- 1.申请测试号,并记录appID和appsecret2.关注测试号3.添加消息模板{{topic.DATA}} 用户名: {{user.DA
- @RequestParam@RequestParam:接收来自RequestHeader中,即请求头。通常用于GET请求,例如:http:/
- 本文实例讲述了Android TextView跑马灯效果实现方法。分享给大家供大家参考,具体如下:public class MyTextVi
- 大多数情况下你不需要访问者模式,但当一旦需要访问者模式时,那就是真的需要它了,这是设计模式创始人的原话。可以看出应用场景比较少,但需要它的时
- 资源下载:点此下载一、语言和环境1.实现语言: JAVA语言。2.环境要求: MyEclipse/Eclipse + Tomcat + My
- SingleClick:@Retention(AnnotationRetention.RUNTIME)@Target(AnnotationT
- 一、注解@PostConstruct使用注解@PostConstruct是最常见的一种方式,存在的问题是如果执行的方法耗时过长,会导致项目在
- Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "hello";,另一种就是使用new
- Java代码package com.zzx.controller;import com.zzx.model.User;import org.
- 后端应用经常接收各种信息参数,例如评论,回复等文本内容。除了一些场景下面,可以特定接受的富文本标签和属性之外(如:b,ul,li,h1, h
- 在 String 中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。
- Android权限一般是在AndroidManifest.xml中声明,在安装或首次使用的时候系统会自动提示用户是否提供权限Android官
- 用java压缩/解压文件: import java.io.*; import java.awt.*; import java.aw
- 一.概述在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条
- 本文实例讲述了Spring使用ClassPathResource加载xml资源。分享给大家供大家参考,具体如下:一 代码package le
- spring-retry模块支持方法和类、接口、枚举级别的重试方式很简单,引入pom包<parent> <gr