`
wufeji
  • 浏览: 20741 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Mybtis+oracle进行分页查询报“无效的列索引”错误原因

 
阅读更多

Mybatis + Oracle 进行分页查询,出现"无效列索引”错误。

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.sql.SQLException: 无效的列索引
### The error may involve FINGERDB_MANAGERINFO.selectDetail-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLException: 无效的列索引
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:80)
	at data.DaoSession.selectList(DaoSession.java:65)
	at data.ManagerInfoDao.selectDetail(ManagerInfoDao.java:53)
	at trans.ManagerTransBean.selectDetail(ManagerTransBean.java:121)
	at view.manager.QueryCheckManagerAction.queryManagersByDept(QueryCheckManagerAction.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)

 整整折腾了我一下午,最后发现是分页参数的原因所致。

 

写道
public static List<CheckManagerDetailBean> selectDetail(DaoSession daoSession,
Map<String,Object> params,int offset, int limit){
return (List<CheckManagerDetailBean>)daoSession.selectList(
"FINGERDB_MANAGERINFO.selectDetail", params, offset, limit);
}
public List selectList(String statement, Object parameter, int startNo, int count){
  return sqlSession.selectList(statement, parameter, new RowBounds(startNo, count));
 }
写道
public class RowBounds {

public final static int NO_ROW_OFFSET = 0;
public final static int NO_ROW_LIMIT = Integer.MAX_VALUE;
public final static RowBounds DEFAULT = new RowBounds();

private int offset;
private int limit;

public RowBounds() {
this.offset = NO_ROW_OFFSET;
this.limit = NO_ROW_LIMIT;
}

public RowBounds(int offset, int limit) {
this.offset = offset;
this.limit = limit;
}
 如果不用RowBounds进行分页,则默认为0,如果用此进行分页,offset不能等于0,否则报无效列索引或者查出数据为空!

 

 

分享到:
评论

相关推荐

    Spring+SpringMVC+MyBatis+Oracl+分页 增删改查功能

    标题 "Spring+SpringMVC+MyBatis+Oracle+分页 增删改查功能" 描述了一个基于Java EE的后端开发框架,用于构建数据管理应用的典型实现。这个框架结合了Spring、SpringMVC和MyBatis,这三个组件在企业级应用开发中非常...

    ssh+oracle分页

    在“ssh+oracle分页”这个主题中,我们将深入探讨如何利用这三个框架与Oracle数据库进行集成,并实现数据的分页显示。 1. **Struts框架**:Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。...

    基于MyBatis+servlet+EasyUI+Oracle完成的一个员工信息管理系统.zip

    此外,还可以通过缓存机制、分页查询、索引优化等手段提升系统性能。 7. **部署与测试**:完成开发后,系统需要在服务器上部署并进行集成测试,确保所有功能正常运行,同时对性能进行监控和调优。 总结,这个员工...

    Java的MyBatis框架中实现多表连接查询和查询结果分页

    这样,当执行`selectWebsitesWithVisitors`查询时,MyBatis会自动进行多表连接,并将查询结果映射为包含`Visitor`对象的`Website`对象列表。 2. **动态SQL**: MyBatis的动态SQL是其一大特色,通过`&lt;if&gt;`, `...

    oracle调用存储过程实现分页

    在Oracle数据库中,分页查询是一项常见的操作,特别是在大数据量的场景下,为了提高用户体验和系统性能,我们通常不会一次性加载所有数据,而是分批次(即分页)展示。存储过程是Oracle数据库中预编译的SQL语句集合...

    oracle 结合 mybatis-plus 逆向工程生成代码,以便大家使用

    7. **扩展性**: MyBatis-Plus 提供的不仅仅是基础的 CRUD 功能,还有分页查询、条件构造器(QueryWrapper)等高级特性,使得代码更加简洁和高效。 总之,Oracle 结合 MyBatis-Plus 的逆向工程是 Java 开发中的一个...

    oracle 分页完整代码

    在Oracle数据库中,分页查询是一项非常常见的操作,特别是在处理大量数据时,为了提高用户体验,我们需要将结果集分块加载,这就是所谓的分页。在这个Java和Oracle结合的分页实现中,我们将探讨如何通过Java后端配合...

    springmvc mybatis 支持分页

    本知识点将深入探讨如何在SpringMVC和MyBatis的集成环境中,实现对Oracle数据库的分页查询功能。 首先,让我们了解SpringMVC。SpringMVC是Spring框架的一部分,它提供了一个用于构建Web应用程序的模型-视图-控制器...

    大数据量翻页查询的一点经验

    而添加额外的1列是为了保持列数的一致性,避免因列数不同引发的错误。 2. **排序后的翻页查询**: 当用户对查询结果进行排序时,我们需要创建索引来加速。在这种情况下,为每个可能的排序字段创建包含所有字段的...

    Oracle真分页。源码

    传统的ROWNUM分页方式在某些场景下可能无法满足需求,特别是在数据量过大或需要跨多行进行排序时,会出现效率低下甚至错误的结果。因此,“Oracle真分页”概念应运而生,它旨在提供一种更高效、更准确的分页解决方案...

    java连接Oracle分页显示

    1. **ROWNUM分页**:Oracle中的ROWNUM伪列可以用来实现简单的分页。它会为每一行返回的数据赋予一个唯一的数字,从1开始递增。例如,如果我们想获取第10到20行的数据,可以使用以下SQL语句: ```sql SELECT * FROM ...

    用于oracle,mysql,sqlserver,数据库分页联合查询

    本话题主要聚焦于如何在Oracle、MySQL和SQL Server这三种主流关系型数据库中实现分页联合查询。 首先,我们来看Oracle数据库的分页查询。Oracle使用ROWNUM关键字来实现分页。例如,如果我们想获取第10到20条记录,...

    mybatis分页插件

    MyBatis 分页插件是 MyBatis 框架中的一个重要辅助工具,它使得在进行数据查询时能够实现高效且便捷的分页功能。在处理大数据量的查询时,分页不仅提高了用户体验,还降低了服务器的压力。下面将详细介绍 MyBatis ...

    mybatis-pagination-master

    mybatis-pagination是一款针对MyBatis的分页插件,它通过拦截器的方式,实现了对原生MyBatis的动态SQL进行拦截,自动添加分页相关的SQL语句,从而实现数据库的分页查询。此插件支持多种主流数据库,如MySQL、Oracle...

    实现分页查询(上)

    4. 分页查询优化:如采用ROW_NUMBER()函数(SQL Server)或RANK()(Oracle)等进行行号排序,减少OFFSET的使用。 五、前端分页实现 前端可以通过JavaScript库(如jQuery、Vue、React等)配合Ajax实现动态分页,通过...

    javamabatis分页查询

    本篇文章详细介绍了如何使用MyBatis进行分页查询的相关知识点,包括分页查询的概念、应用场景、MyBatis简介以及具体的代码实现细节。通过理解和掌握这些知识点,开发者可以更好地在项目中实现高效的数据分页查询功能...

    分页查询

    2. 注意事项:分页查询时,应避免全表扫描,合理利用索引可以显著提升查询效率。 三、Spring框架中的分页查询 1. Spring Data JPA:提供PagingAndSortingRepository接口,通过Pageable对象来实现分页查询,包括排序...

    好用的JAVA WEB分页中间件,比mybatis内置的分页好用.zip

    标题提到的“好用的JAVA WEB分页中间件,比mybatis内置的分页好用”,指的是PageHelper,这是一个在MyBatis框架上扩展的分页插件,提供了强大的分页功能,并且比MyBatis原生的分页更加灵活和高效。 PageHelper插件...

    oracle的分页

    在Java开发中,与Oracle数据库交互进行分页查询是常见的需求。本文将详细讲解Oracle数据库的分页查询方法及其在Java中的应用。 首先,Oracle数据库提供了多种分页查询的方式: 1. **ROWNUM**:这是Oracle早期的...

    Java实现分页查询

    本篇将详细讲解如何利用Java、JDBC、Servlet、JSTL和EL表达式来实现一个完整的分页查询系统,同时结合Oracle数据库进行实战演示。 首先,我们需要了解分页的基本概念。分页是将数据分割成若干页,每次只加载一页的...

Global site tag (gtag.js) - Google Analytics