须放在编译类路径下的扩展类
package com.core.dao; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import java.util.Collection; import java.util.Date; import java.util.Map; /** * @description mybatis ognl表达式扩展 * @author: goa * @date: 2016/1/8 18:55 * @version: v2.2.0 */ public class Ognl { /** * 使用ognl扩展 * 该功能为,根据传入的值, * 如果值为0,则 ... 。 * 如果值为1,则 ... 。 * * @return */ public static boolean isSolve(Object o, String soleState) { if (o == null) { return false; } String str = null; if (o instanceof String[]) { String[] objects = (String[]) o; str = objects[0]; } else if (o instanceof Character) { Character c = (Character) o; str = Character.toString(c); } else if (o instanceof String) { String s = (String) o; str = s; } if (soleState.equals(str)) { return true; } else { return false; } } /** * 可以用于判断 Map,Collection,String,Array是否为空 * * @param o * @return */ @SuppressWarnings("unchecked") public static boolean isEmpty(Object o) throws IllegalArgumentException { if (o == null) return true; if (o instanceof String) { return StringUtils.isEmpty((String) o); } else if (o instanceof Collection) { return CollectionUtils.isEmpty((Collection) o); } else if (o.getClass().isArray()) { return ArrayUtils.isEmpty((Object[]) o); } else if (o instanceof Map) { MapUtils.isEmpty((Map) o); } else if (o instanceof Date) { return o == null; } else if (o instanceof Number) { return o == null; } else if (o instanceof Boolean) { return o == null; } else { throw new IllegalArgumentException("Illegal argument type,must be : Map,Collection,Array,String. but was:" + o.getClass()); } return false; } /** * 可以用于判断 Map,Collection,String,Array是否不为空 * * @param o * @return */ public static boolean isNotEmpty(Object o) { return !isEmpty(o); } public static boolean isNotEmpty(Object... objects) { if (objects == null) return false; for (Object obj : objects) { if (isEmpty(obj)) { return false; } ; } return true; } public static boolean isNotBlank(Object o) { return !isBlank(o); } public static boolean isBlank(Object o) { return StringUtils.isBlank((String) o); } public static boolean isBlank(String str) { return StringUtils.isBlank(str); } }
如这样使用:
<if test="@com.core.dao.Ognl@isSolve(type,1)"> AND T.N_STATUS=2</if>
相关推荐
ognl源码 是于2008.07.29从官方网站上down下的
有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,下面这篇文章主要介绍了MyBatis中OGNL的使用教程,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
主要给大家介绍了关于Mybatis利用OGNL表达式处理动态sql的方法教程的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
Mybatis Generator 扩展插件介绍"Mybatis Generator 扩展插件"是在Mybatis Generator(MBG)的基础上添加了扩展性的插件。快速生成符合项目规范的代码风格,节约时间。 现已支持MySQL分页插件,序列化插件,Repository...
mybatis generator扩展生成service与controller层文件,并简单生成增删改查方法
mybatis中使用ognl共4页.pdf.zip
分页拦截器 分页方式是通过扩展Mybatis拦截器,当入参中包含接口MybatisPage类(及其实现类)且返回参数为Page形式时触发分页拦截器,解析总条数 total及页内容content。只需声明,无需额外调用,以最低的代码入侵...
NULL 博文链接:https://javatea.iteye.com/blog/2383983
XMBG 扩展自 Mybatis Generator插件,增加了一些: 扩展的方法 类型转换 命名转换(通过正则表达式) 增量生成 自定义注释 其它 ...
主要介绍了tk.mybatis扩展通用接口使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
mybatis-generator反向生成代码一对一一对多扩展JAR包,下载后导入项目中使用
Quarkus MyBatis扩展 MyBatis是一流的持久性框架,支持自定义SQL,存储过程和高级映射。 此扩展为开发人员提供了易于配置和本机支持的功能。 在pom.xml中添加以下依赖项以开始使用, < dependency> < groupId>io....
MyBatis 的 Beetl 脚本语言扩展,支持使用 Beetl 作为 mapper 的动态脚本语言,用以编写动态 SQL。 标签:MyBatis
测验作为mybatis的扩展框架使用目前处于1.0.0版本
主要介绍了Mybatis插件扩展及与Spring整合原理,本文通过实例文字相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
sonar 扫描mybatis的扩展插件
mybatis插件 mybatis插件用于自动设置属性,可扩展性强。一个类需要设置的属性,避免每次给对象赋值都需要大量反射操作带来的性能消耗。
mybatis源码是mybatis-3.2.6的源码,用户使用mybatis时可以进行参考
mybatis-3.5.6.zip 最新版的mybatis-3.5.6.zip,从官网下了半天才下载下来,现在放到CSDN方便大家
mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例...