源代码:
public class Test4 {
static Connection con;
static PreparedStatement sql; //声明预处理语句
static ResultSet res;
public Connection getConnection(){
try {
con = DBLink.connection(); //获取与数据库的连接
sql = con.prepareStatement("select * from EduData..student where SID = ?"); //预处理语句
sql.setString(1,"2005216007"); //设置参数
res = sql.executeQuery(); //执行预处理语句
//如果当前记录不是结果集中地最后一行,则进入循环体
while (res.next()) {
String SID = res.getString("SID"); //获取结果集中地指定值
String name = res.getString("Sname");
String sex = res.getString("Sex");
String date = res.getString("Brithday");
String ss = res.getString("Specialty");
System.out.print("学号:"+SID);
System.out.print(" 姓名:"+name);
System.out.print(" 性别:"+sex);
System.out.print(" 生日:"+date);
System.out.println(" 专业:"+ss);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test4 tt = new Test4();
tt.getConnection();
}
}
运行时出现下面异常:
com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setString(Unknown Source)
at com.gem.lianxi.Test4.getConnection(Test4.java:19)
at com.gem.lianxi.Test4.main(Test4.java:45)
请问这是怎么回事?该怎么解决?什么原因?
解决方法找到一种:就是这样写:sql = con.prepareStatement("select * from EduData..student where SID = " + "?");
但是还是不清楚为什么要这样做?那样出错的原因是什么?
相关推荐
1. **B-Tree索引**:这是最常用的索引类型,适用于范围查询和排序操作。B-Tree索引中的键值是有序的,因此可以快速定位到数据行。 2. **哈希索引**:哈希索引适用于等值查询,它的查询速度非常快,但不支持范围查询...
- Hash索引不支持范围查询和部分索引列的使用,在唯一列(unique columns)上使用时可能会遇到Hash冲突的问题。 三、WAL日志与数据恢复 - WAL日志是数据库ACID特性中重要的一环,它确保了数据的持久性和一致性。 - ...
在数据库中,索引通过减少数据扫描的范围来提高查询效率。 在给定的文件内容中,我们可以提炼出一些关键的SQL索引知识点: 1. 聚簇索引(Clustered Index):聚簇索引决定了表中数据行的物理存储顺序。每个表只能...
查询操作,比如范围查询或最近邻查询,通过遍历R树的节点并检查查询范围与节点矩形的交集来实现。 R树的优化策略包括平衡策略和合并策略。平衡策略确保树的形状不会过于倾斜,通过旋转和分裂操作保持树的平衡。合并...
本资源“超全MATLAB绘图索引(含代码)”旨在为用户提供一个全面的MATLAB绘图指南,帮助用户快速掌握如何在MATLAB中创建专业且美观的图像,从而提高科研工作的效率。 在MATLAB中,绘图主要涉及到以下几个关键知识点...
2. 成本控制,监控费用支出,防止超预算 3. 质量审计,定期评估项目绩效 4. 风险监控,更新风险登记册,采取预防措施 5. 问题管理,解决项目中出现的问题和障碍 五、项目结束阶段 项目结束时,需要进行收尾工作,...
这种方法在等值查询时特别有效,因为可以直接通过哈希码找到数据,但哈希索引不支持范围查询和排序。 3. **`EXPLAIN`命令** - `EXPLAIN`是MySQL提供的一种分析SQL查询执行计划的工具。通过在查询语句前加上`...
3. 查询优化:提供多种空间查询功能,如范围查询、最近邻查询,利用R树优化查询效率。 4. 数据处理工具:提供点云滤波、分类、地形分析等工具,便于用户进行数据预处理和分析。 5. 可视化展示:支持点云数据的二维和...
##### 1. 打开企业管理器 - **操作路径**:首先启动SQL Server Management Studio (SSMS),并在控制台的根目录中找到“Microsoft SQL Server”节点。 - **定位服务器**:在“Microsoft SQL Server”下找到“SQL ...
文章通过对比实验验证了新模式的优越性,在数据量达到5000万条,每秒有20并发访问的场景下,使用分布式索引层的查询可以在2秒内全部成功返回结果,而传统的处理模式则因超时而全部失败。 文章的核心在于分布式索引...
1. 分区:Rtree首先将整个数据空间划分为多个超矩形(Hyperrectangle),这些超矩形称为节点的边界框(bounding box)。边界框尽可能地包含所有子节点的数据项。 2. 插入:当新的数据项加入时,Rtree会找到最合适的...
"M树",全称为M-Tree,是一种在数据库和信息系统中广泛使用的多维索引结构。它是基于轴平分(Axis-Partitioning)方法的一种数据结构,特别适用于处理高维空间的数据,例如地理信息系统或图像数据库。M树的设计目标...
检索步骤包括选择数据库和时间段,输入检索词,然后查看和分析检索结果,还可以进行超链检索、二次检索,以及原文下载和原文索取。在检索结果中,用户可以进一步细化搜索,通过二次检索功能的“在结果中检索”、“在...
传统的索引方法,如哈希表和B-Trees,虽然在单维数据上表现良好,但无法有效地应对多维数据的索引需求,尤其是对于相似性查询和范围查询。 多维数据索引主要针对点数据和矩形数据。点数据的索引结构包括Cell方法、K...
KD树是将n维空间分割的树结构,每个节点代表一个划分的超平面,用于解决多维空间的查询问题。Ball树是一种用于解决球体范围内查询问题的树结构。通过这些空间索引结构,能够有效地对空间数据进行划分,优化数据的...
本资源“超全MATLAB绘图索引(含代码),matlab画图代码,matlab源码.zip”包含了丰富的MATLAB绘图教程和实例代码,旨在帮助用户深入理解和掌握MATLAB的图形绘制技巧。 1. MATLAB绘图基础 在MATLAB中,绘图命令通常...