`
qq123zhz
  • 浏览: 534615 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mybatis OGNL应用

    博客分类:
  • java
阅读更多

mybatis中使用ognl的扩展,实现判断传入的字段:

Mapper文件中:

 <select id="getRecentQuestionTitle" parameterType="java.lang.String" resultType="java.lang.String">
   		select title from song_question where questionState = #{value} 
   		<if test="@Ognl@isSolve(value[0],0)">
   		order by questionTime desc 
   		</if>
   		<if test="@Ognl@isSolve(value[0],1)">
   		order by answerTime desc 
   		</if>
   		
   		 limit 0,1
   </select>

  Ognl.java文件:

/**使用ognl扩展
	 * @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);
		}
			if(StringUtils.equals(str, soleState))
				return true;
		return false;
		
	}

   该功能为,根据传入的值,

    如果值为0,则order by questionTime desc 根据字段questionTime排序。

    如果值为1,则order by answerTime desc根据字段answerTime排序。

   Ognl.java 必须放在class目录,也就是没有包名。

分享到:
评论

相关推荐

    ognl源码

    **ognl源码详解** ognl(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置...同时,通过对ognl源码的研究,开发者可以更好地掌握动态语言在Java平台上的应用,提高编程技巧和问题解决能力。

    MyBatis中OGNL的使用教程详解

    在MyBatis中,OGNL主要应用于以下两个场景: **1. 动态SQL表达式**: 动态SQL允许根据条件动态地构建SQL语句。例如,当查询一个名为`country`的表时,可以使用`&lt;if&gt;`标签配合OGNL表达式来实现`LIKE`查询: ```...

    mybatis中使用ognl共4页.pdf.zip

    【标题】"mybatis中使用ognl共4页.pdf.zip" 涉及的主要知识点是MyBatis框架中对OGNL(Object-Graph Navigation Language)表达式的应用。OGNL是一种强大的表达式语言,常用于获取、设置Java对象的属性,以及执行对象的...

    简单MyBatis所需jar包

    MyBatis是一个流行的Java持久层框架,它简化了数据库操作,通过XML或注解的方式将SQL与Java代码绑定,使得开发者能够更专注于SQL本身,而无需...但作为起点,这些基本的jar包已经足够构建一个简单的MyBatis应用程序。

    spring、mybatis开发jar包

    3. mybatis-ognl:OGNL(Object-Graph Navigation Language)用于表达复杂的对象导航和操作。 除此之外,可能还会包含一些第三方库的jar包,如: 1. log4j或logback:日志记录框架,用于调试和问题追踪。 2. slf4j...

    mybatis开发所需的基础jar包.zip

    在进行MyBatis开发时,基础的jar包是必不可少的,这些jar包提供了MyBatis框架的核心功能,使得开发者能够方便地将数据库操作与应用程序逻辑相结合。下面将详细介绍这个压缩包中的关键知识点。 首先,MyBatis的jar包...

    mybatis_jar所用到的所有jar包+官方文档

    5. `ognl-x.x.x.jar`:Object-Graph Navigation Language,MyBatis使用OGNL作为表达式语言,处理动态SQL和对象属性的获取与设置。 这些jar包共同构成了MyBatis运行的基础环境,确保了与数据库的交互、日志记录以及...

    手撕Mybatis源码,自己动手实现Mybatis

    Mybatis使用反射和OGNL表达式来实现这一过程。 7. **ResultSetHandler**: 结果集处理器负责从数据库返回的结果集中提取数据,并将其映射到Java对象。它可以处理单一结果、多个结果或无结果的情况。 8. **...

    mybatis最新所有jar包

    它提供了Spring与MyBatis的集成,使你可以方便地在Spring应用上下文中管理SqlSessionFactory和SqlSessionTemplate。 4. **persistence-api-1.0.jar**:这是Java Persistence API的实现,MyBatis有时会依赖JPA的一些...

    深入理解mybatis原理

    MyBatis能够通过传入的参数动态生成SQL语句,这是通过OGNL(Object-Graph Navigation Language)表达式语言实现的。这种设计让MyBatis具有很好的灵活性和扩展性。参数映射是数据处理层的另一个重要功能,主要涉及...

    MyBatis官方包.rar

    - ognl-x.x.x.jar:Object-Graph Navigation Language,MyBatis使用OGNL作为表达式语言来访问对象属性。 - ...其他可能的依赖,如 Commons-logging、guava 等。 3. **文档**:可能包含MyBatis的官方文档,如PDF或...

    spring及mybatis相关的jar包lib.rar

    开发者可以通过Spring管理整个应用程序的生命周期,使用Mybatis进行高效的数据库操作,结合DBCP或Pool管理数据库连接,通过Ojdbc6与Oracle数据库交互,最后利用OGNL处理视图层的数据绑定。这种架构模式在实际项目中...

    MyBatis框架所需jar包

    10. **ognl-3.0.6.jar**: Object-Graph Navigation Language (OGNL) 是一个强大的表达式语言,MyBatis使用它来处理动态SQL中的表达式,如参数绑定和结果集映射。 以上这些库共同构成了MyBatis运行环境的基本组件,...

    mybatis+struts2整合demo

    这个"mybatis+struts2整合demo"是为了帮助初次接触MyBatis的开发人员更好地理解和应用这两款框架。 1. MyBatis整合:MyBatis的核心是SQL映射文件和SqlSessionFactory。在整合过程中,我们需要配置MyBatis的主配置...

    mybatis相关jar包.zip

    7. **ognl-*.jar**: OGNL(Object-Graph Navigation Language)是MyBatis中的表达式语言,用于在SQL语句中动态设置参数或获取结果集字段。 8. **commons-logging-*.jar**: Apache Commons Logging,一个轻量级的...

    MyBatis(三)

    在本篇关于"MyBatis(三)"的文章中,我们将深入探讨MyBatis框架与OGNL(Object-Graph Navigation Language)以及log4j日志库的结合使用。MyBatis是一个优秀的持久层框架,它简化了Java开发中的数据库操作,允许开发者...

    springmybatis

    MyBatis 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis ...

    mybatis所有jar包

    至于`ognl`库,它是Object-Graph Navigation Language的缩写,是一个强大的表达式语言,常用于Spring MVC中的模型绑定和数据访问。在MyBatis中,虽然不是直接使用,但在某些自定义插件或者复杂逻辑处理中可能会用到...

    MyBatis所需jar包

    9. **ognl-x.x.x.jar**:OGNL(Object-Graph Navigation Language)是MyBatis用来解析和执行动态SQL表达式的库。它可以处理复杂的属性导航和表达式语言。 以上这些jar包构成了MyBatis运行的基础,确保它们在项目类...

    mybatis3依赖jar包

    6. **ognl-x.x.x.jar**:Object-Graph Navigation Language,MyBatis的表达式语言,用于动态SQL的构建。 此外,还有一些其他可能的依赖,如`asm-x.x.x.jar`(用于动态字节码操作)、`guava-x.x.x.jar`(Google的...

Global site tag (gtag.js) - Google Analytics