在使用PreparedStatement 仅对oracle数据库进行查询是在 ps.setObject(i, values[i]);总是提示无效的列索引
public List queryForBeans(final String sql, final Object... values) {
Connection connection = null;
try {
connection = super.getDataSource().getConnection();
PreparedStatement ps = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
if (values != null) {
for (int i = 0; i < values.length; i++) {
ps.setObject(i, values[i]);
}
}
ResultSet rs = ps.executeQuery();
RowSetDynaClass rsdc = new RowSetDynaClass(rs);
rs.close();
ps.close();
return rsdc.getRows();
} catch (SQLException ex) {
throw this.getExceptionTranslator().translate("", sql, ex);
} finally {
this.close(connection);
}
}
后来在网上收了下原来是ps的参数是从1开始的而不是从0开始的,所有总是报无效的列索引,改为 ps.setObject(i+1, values[i]);这样就ok了。还有在网上也看到有人出现同样的问题,但不是我这样的问题,而是下标的数量与?的数量不一致,或者将?写成了?
分享到:
相关推荐
- **LIKE操作**:如果查询条件使用了`LIKE`操作符,且通配符位于左侧(如`'%nihao%'`),则索引无效;但如果通配符位于右侧(如`'nihao%'`),则可以使用索引。 - **OR操作**:在查询条件中使用`OR`连接时,索引...
学习者将了解如何加载驱动、建立连接、创建Statement和PreparedStatement对象、执行SQL查询以及处理结果集。 2. **Oracle的事务**:事务是数据库操作的基本单元,它确保一组数据库操作要么全部成功,要么全部失败。...
注意,由于ODBC SQL Server Driver的特性,我们需按照列的顺序依次获取值,否则会抛出“无效的描述符索引”异常。 最后,界面部分没有给出完整代码,但通常会涉及到数据显示在JScrollPane中的JTable或者其他的UI...
根据提供的标题、描述、标签及部分内容,我们可以总结出以下关于“经典的数据库查询”相关的知识点。 ### 一、经典数据库查询的高效性与简洁性 #### 1.1 资源占用较少 - **背景介绍**:在数据库操作中,特别是在大...
3. **查询语句写法**:尽量使用SELECT *谨慎地选择需要的列,避免使用NOT IN和OR操作,它们可能导致索引失效。优先考虑使用EXISTS,因为它通常比IN和NOT IN更高效。 4. **数据类型优化**:合理选择数据类型可以减小...
当我们谈论“jdbc优化连接数据库”时,主要涉及提高数据库访问性能、减少资源消耗以及提升系统稳定性。下面将详细讨论优化MySQL数据库连接的代码和开发步骤。 1. **连接池的使用**: - 连接池是管理数据库连接的...
本项目“Swing界面的用户信息添加、查询、删除”是关于使用Swing来设计一个用户管理系统的实例,涉及到数据库连接以及基本的数据操作。下面我们将详细探讨这些知识点。 1. **Swing组件**: - `JFrame`:作为窗口的...
8. `JLabel`数组`CD`:在查询结果显示时用作商品信息的列标题,如“清单号”、“编号”、“名称”等。 源代码中,`actionPerformed`方法将处理用户点击按钮的事件,通过调用数据库查询方法获取数据。虽然具体查询...
在编写数据库程序时,需要考虑如何高效地处理数据,包括事务的管理、索引的优化、性能的监控等。 6. 专业指导和参考文献:在学习和应用数据库技术时,参考专业的指导材料和文献对于掌握技术要点和最佳实践至关重要...
- 错误处理:添加异常处理机制,确保在遇到无效输入或数据库问题时,系统能优雅地处理错误并给出反馈。 - 数据验证:在录入和修改时,检查用户输入的有效性,如学号的唯一性、日期格式等。 - 用户交互:优化界面布局...
3. **性能优化**:如果邮件数据量较大,可以考虑分页显示结果,或者使用索引优化查询速度。 总之,这个项目涉及了Java编程、数据库设计、SQL查询和控制台交互等多个方面,对于初学者来说,是一个很好的练习项目,...
- 根据索引匹配情况选择合适的查询方式,如x=?或x<>?。 - 大量使用PreparedStatement,减少SQL解析时间。 - 减少使用DISTINCT,它可能导致创建临时表,影响性能。 5. **SQL监控与分析** 利用PL/SQL的执行计划...
需要注意的是,当数据量过大时,应考虑优化分页策略,比如使用索引、缓存等手段。 9. **参数传递**:用户在前端选择页码后,需要通过HTTP请求将参数传给服务器。这可以通过URL参数、POST请求等方式实现。 10. **...
Java 分页技术是Java Web开发中常用的一种技术,主要用于处理大量数据时,避免一次性加载所有数据导致内存压力和用户体验下降。以下是对Java分页技术的详细说明: 1. **初始化参数**: 在实现分页功能时,首先需要...
在实现过程中,还需要考虑系统的性能优化,比如使用预编译的PreparedStatement来防止SQL注入,通过批处理提高数据插入效率,以及利用索引加速查询等技术。 总的来说,"Java SQL Server 2008编写的课程设计大作业"是...
在Java中,这些操作通过JDBC的PreparedStatement和ResultSet等类实现,例如插入订户信息、查询订单状态、修改报刊详情以及删除无效订单。 3. **事务处理**:在数据库操作中,事务确保了数据的一致性和完整性。例如...
开发者可能还设计了索引以优化查询性能,同时考虑了数据的一致性和完整性,使用了约束(如NOT NULL、UNIQUE)来避免无效或重复的数据。 六、异常处理 为了保证程序的健壮性,开发者通常会使用try-catch-finally语句...
6. **数据库操作**: 使用SQL语句进行数据的CRUD(Create, Read, Update, Delete)操作,例如,INSERT语句用于添加新的成绩,SELECT语句用于查询,UPDATE用于修改已有成绩,而DELETE可能用于删除无效或重复的数据。...
2. 数据预处理:在读取Excel时,对无效或异常数据进行过滤,避免在数据库操作时出现错误。 3. 错误处理:添加异常捕获和处理机制,确保程序的健壮性。 总之,这个项目展示了如何使用Java和Apache POI读取Excel数据...
`Statement`和`PreparedStatement`接口新增了`executeAsync()`方法,返回`java.sql.PreparedStatement$AsyncStatementResult`对象,可以异步获取执行结果。 10. **安全性增强** JDBC 4.1规范考虑了安全性方面,...