Mybatis中的常用OGNL表达式

 更新时间:2022年06月22日 11:15:46   作者:Moss Huang  
这篇文章主要介绍了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>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring注解@EnableWebMvc使用的坑点及解析

    Spring注解@EnableWebMvc使用的坑点及解析

    这篇文章主要介绍了Spring注解@EnableWebMvc使用的坑点及解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Spring Security使用数据库认证及用户密码加密和解密功能

    Spring Security使用数据库认证及用户密码加密和解密功能

    这篇文章主要介绍了Spring Security使用数据库认证及用户密码加密和解密,本文通过代码与截图的形式给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • JavaWeb中异步交互的关键Ajax详解

    JavaWeb中异步交互的关键Ajax详解

    这篇文章主要给大家介绍了关于JavaWeb中异步交互关键Ajax的相关资料,在javaweb中,ajax是前后台交互的技术,可以实现异步请求,不用刷新整个页面就可以完成操作,需要的朋友可以参考下
    2023-07-07
  • 在Spring Boot项目中引入本地JAR包的步骤和配置

    在Spring Boot项目中引入本地JAR包的步骤和配置

    本文探讨了在Spring Boot项目中引入本地JAR包的步骤和必要的配置,通过使用Maven的system作用域,开发者可以将自定义的本地库或功能集成到Spring Boot应用程序中,,需要的朋友可以参考下
    2023-10-10
  • java实现的2048游戏完整实例

    java实现的2048游戏完整实例

    这篇文章主要介绍了java实现的2048游戏,结合完整实例形式分析了java实现2048游戏功能的相关数值运算、swing组件布局、事件响应等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • SpringBoot使用Flyway进行数据库管理的操作方法

    SpringBoot使用Flyway进行数据库管理的操作方法

    Flyway是一个开源的数据库版本管理工具,并且极力主张“约定大于配置”,简单、专注、强大。接下来通过本文给大家介绍SpringBoot使用Flyway进行数据库管理的方法,感兴趣的朋友一起看看吧
    2021-09-09
  • Spring Boot实现配置文件的自动加载和刷新功能

    Spring Boot实现配置文件的自动加载和刷新功能

    这篇文章我们介绍了Spring Boot如何实现配置文件的自动加载和刷新,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-05-05
  • Intellij IDEA 2017.3使用Lombok及常用注解介绍

    Intellij IDEA 2017.3使用Lombok及常用注解介绍

    这篇文章主要介绍了Intellij IDEA 2017.3使用Lombok及常用注解介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java集合的Collection接口和List接口详解

    Java集合的Collection接口和List接口详解

    这篇文章主要为大家详细介绍了Java集合的Collection接口和List接口,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • java对象强转成object的方法实现

    java对象强转成object的方法实现

    在 Java 编程中,有时候我们需要将一个具体的对象强制转换成 Object 类型,本文主要介绍了java对象强转成object的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论