在mybatis的sqlMapper中使用Ognl判断动态sql语句
来源:互联网 发布:网络购物合同纠纷 编辑:程序博客网 时间:2024/06/05 19:09
1.编写Ognl类
import java.lang.reflect.Array;import java.util.Collection;import java.util.Map;/** * @author:Pionner17 * @date: 2017/9/10 22:56 * @email:selectedwang@163.com * @phone: 17600903381 * @motto: make a little progress every day! * @params: * Ognl工具类,主要是为了在ognl表达式访问静态方法时可以减少长长的类名称编写 * Ognl访问静态方法的表达式为: @class@method(args) */public class Ognl { /** * 可以用于判断String,Map,Collection,Array是否为空 * @param o * @return */ public static boolean isEmpty(Object o) throws IllegalArgumentException { if(o == null) return true; if(o instanceof String) { if(((String)o).length() == 0){ return true; } } else if(o instanceof Collection) { if(((Collection)o).isEmpty()){ return true; } } else if(o.getClass().isArray()) { if(Array.getLength(o) == 0){ return true; } } else if(o instanceof Map) { if(((Map)o).isEmpty()){ return true; } }else { return false;//throw new IllegalArgumentException("Illegal argument type,must be : Map,Collection,Array,String. but was:"+o.getClass()); } return false; } /** * 可以用于判断 Map,Collection,String,Array是否不为空 * @param c * @return */ public static boolean isNotEmpty(Object o) { return !isEmpty(o); } public static boolean isNotBlank(Object o) { return !isBlank(o); } public static boolean isNumber(Object o) { if(o == null) return false; if(o instanceof Number) { return true; } if(o instanceof String) { String str = (String)o; if(str.length() == 0) return false; if(str.trim().length() == 0) return false; return org.apache.commons.lang.StringUtils.isNumeric(str); } return false; } public static boolean isBlank(Object o) { if(o == null) return true; if(o instanceof String) { String str = (String)o; return isBlank(str); } return false; } public static boolean isBlank(String str) { if(str == null || str.length() == 0) { return true; } for (int i = 0; i < str.length(); i++) { if (!Character.isWhitespace(str.charAt(i))) { return false; } } return true; }}
2.利用Ognl动态判断if
<select id="getUserList" parameterType="Map" resultMap="result_User_Map"> select <include refid="user_Column" /> from user <where> <if test="@Ognl@isNotEmpty(id)"> and ID = #{id} </if> <if test="@Ognl@isNotEmpty(username)"> and USERNAME = #{username} </if> </where> </select>
注意:Ognl类必须放在与包名同级的文件夹下
阅读全文
0 0
- 在mybatis的sqlMapper中使用Ognl判断动态sql语句
- MyBatis直接执行SQL的工具SqlMapper
- MyBatis直接执行SQL的工具SqlMapper
- MyBatis直接执行SQL的工具SqlMapper
- MyBatis直接执行SQL的工具SqlMapper
- Mybatis中SqlMapper配置
- MyBatis中动态SQL语句的书写
- Mybatis之动态sql语句中时间判断(if)的应用
- MyBatis使用动态SQL语句
- mybatis sqlmapper test 判断非字符串类型的值
- mybatis的动态SQL语句
- mybatis的动态sql语句
- MyBatis 动态SQL使用心得之Map中Key判断
- Mybatis中动态sql___if判断语句
- Mybatis中SqlMapper配置的扩展与应用(3)
- 在mybatis sql mapper文件中使用枚举(ognl表达式)
- mybatis中动态sql的使用
- MyBatis动态SQL中trim的使用
- golang -strings库笔记
- 旅行 The Trip, 2007 UVA
- 51nod 1487 占领资源(RMQ+暴力)
- DetachedCriteria详细使用
- 排序算法(二)希尔排序
- 在mybatis的sqlMapper中使用Ognl判断动态sql语句
- javaWeb注册,登陆,退出、记住用户名和密码
- 今日头条2017秋招笔试编程题
- Hadoop 相关问题汇总
- 编程心法
- Servlet生命周期
- 14javaSocket应用(慕课笔记)
- Linux下的epoll
- HDU 6197 array array array