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

mybatis OGNL应用扩展

 
阅读更多

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目录,也就是没有包名。

分享到:
评论

相关推荐

    spring、mybatis开发jar包

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

    深入理解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或...

    mybatis所有jar包

    3. `spring-context`:扩展了`spring-beans`,提供了应用上下文,支持国际化、事件传播、资源加载等功能。 4. `spring-core`:包含了Spring的基本功能,如依赖注入(DI)和资源处理。 5. `spring-expression`(SpEL...

    springmybatis

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

    springboot-mybatis-custom-language-driver.zip

    MyBatis默认提供了基于OGNL的表达式引擎,但有时我们可能需要更复杂或特定的逻辑,这时就需要自定义语言驱动。自定义语言驱动可以让开发者扩展MyBatis的动态SQL能力,实现更加个性化的SQL生成策略。 3. **循环查询...

    struts2+spring+mybatis+easyui的实现

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们分别负责MVC模式中的控制层、业务层和服务层。...这种架构在实际开发中具有良好的可扩展性和可维护性,是许多企业级应用的首选方案。

    mybatis3.2.7源码

    MyBatis通过反射和OGNL表达式解析参数。 7. **ResultSetHandler**: 处理SQL查询的结果集,将数据库返回的数据转化为Java对象。它实现了多种策略,如Map、List、单个对象等。 8. **TypeHandler**: 类型处理器负责...

    基于java的企业级应用开发:Mybatis与Spring的整合.ppt

    此外,MyBatis还依赖于其他一些JAR,如`ognl`(对象图形导航语言)用于表达式处理,以及`log4j`或`slf4j`等日志库。 整合过程中,数据库驱动JAR包也是必不可少的,例如MySQL的驱动`mysql-connector-java`。为了实现...

    struts2+spring+mybatis整合所需的基本jar包

    整合这三个框架可以让开发者更高效地构建可维护、可扩展的Web应用程序。本资源提供的"struts2+spring+mybatis整合所需的基本jar包"包含了进行这种整合所需的库文件。 首先,Struts2是基于MVC设计模式的开源Web应用...

    MyBatis完整jar包

    这个压缩包包含了使用MyBatis进行开发所需的完整jar包,使得你可以直接将其添加到项目的lib目录下,快速构建基于MyBatis的半自动框架应用。 首先,我们来详细了解一下压缩包中包含的各个文件: 1. **ant-1.9.6.jar...

    struts2、 spring4、 spring mvc、 hibernate4、 mybatis的三大框架(三套)

    Struts2、Spring4、Spring MVC、Hibernate4和MyBatis是Java开发中非常重要的五个框架,它们分别在Web应用的各个层面提供了强大的支持。这三套框架组合在一起,可以构建出高效、灵活且可维护的Java Web应用程序。 1....

    mybatis-3源码

    MyBatis 使用反射和OGNL(Object-Graph Navigation Language)来处理参数映射。 7. **ResultSetHandler**: ResultSetHandler 负责解析 SQL 查询的结果集,将其转换为 Java 对象。MyBatis 支持多种结果映射策略,...

    MyBatis动态SQL.pdf

    MyBatis动态SQL的实现主要依赖于强大的**OGNL**(Object Graph Navigation Language)表达式语言。OGNL是一种用于访问和操作对象属性的强大语言,在MyBatis中被用来动态构建SQL语句。通过OGNL,可以根据传入的参数和...

    struts2 + spring3 + mybatis3

    Struts2、Spring3 和 MyBatis3 是Java Web开发中的三大主流框架,它们的集成应用可以构建出高效、灵活的后端系统。Struts2 作为MVC(Model-...通过合理的配置和设计,可以构建出功能丰富、可扩展性强的企业级Web应用。

    struts2 mybatis北京做的项目

    Struts2和MyBatis是两个非常重要的Java Web开发框架,它们在构建高效、可维护的Web应用程序中扮演着核心角色。在这个名为“struts2 mybatis北京做的项目”的实例中,开发者结合了这两个框架来完成一个实际的项目。...

    MyBatis面试专题及答案.pdf

    4. **MyBatis 插件**:MyBatis 允许开发者创建插件来扩展其功能,插件主要基于 Java 动态代理技术实现。开发者需要实现 `Interceptor` 接口,编写 `intercept()` 方法,然后通过注解指定要拦截的接口和方法。在 ...

    Struts 2.3.1.2+Spring 3.1.1+mybatis 3.1.0 基础框架

    Struts 2.3.1.2、Spring 3.1.1 和 ...通过这个基础框架,开发者可以快速搭建一个具备基本功能的Java Web应用,并在此基础上进行业务逻辑的开发和扩展。提供的DEMO实例可以作为参考,帮助理解各个组件如何协同工作。

    SSM框架——详细整合教程(Spring SpringMVC MyBatis

    通过以上步骤,可以成功地将 Spring、SpringMVC 和 MyBatis 进行整合,构建出一个功能完整、易于扩展和维护的 Java Web 应用程序。在实际开发过程中,还需要考虑异常处理、事务管理、安全认证等方面的问题,以确保...

    Mybatis与Ibatis的区别

    然而,这种方式在分页查询时受限,Mybatis框架明确禁止了嵌套对象结果集的分页,这可能限制了其在某些场景下的应用。 再者,Mybatis采用了强大的OGNL(Object-Graph Navigation Language)表达式,这使得配置文件...

Global site tag (gtag.js) - Google Analytics