java中用JDBC链接mysql查询为什么总是报错?

importjava.sql.*;publicclassTest{publicstaticvoidmain(String[]args){Stringurl="jdbc:m... import java.sql.*;

public class Test {
public static void main(String[] args){
String url = "jdbc:mysql://127.0.0.1:3306/FACTORY";

try{
//注册驱动
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("注册驱动成功!");

//连接数据库
Connection conn = DriverManager.getConnection(url, "root", "123456");
System.out.println("连接成功!");
//建立statement
Statement statement = conn.createStatement();
System.out.println("建立statement成功!");

//建立一个返回值
ResultSet resultSet = statement.executeQuery("select * from SPJ where SNO = 'S1'");
System.out.println("建立resultSet成功!");

//输出表头
ResultSetMetaData rsMetaData = resultSet.getMetaData();

for(int i = 0 ; i < rsMetaData.getColumnCount() ; i++){
System.out.printf("%-12s\t", rsMetaData.getColumnName(i ));
// System.out.printf("%-12s\t", resultSet.getString(i));
}
System.out.println();
System.out.println("输出表头成功");

//输出表体
while(resultSet.next()){
for(int i = 0 ; i <= rsMetaData.getColumnCount() ; i++){
System.out.printf("%-12s\t", resultSet.getObject(i));
}
System.out.println();
}
System.out.println("输出表体成功");
conn.close();
}catch(Exception e){
e.printStackTrace();
}
//关闭链接

}
}

错误提示:
注册驱动成功!
连接成功!
建立statement成功!
建立resultSet成功!
java.sql.SQLException: Column index out of range.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSetMetaData.getField(ResultSetMetaData.java:398)
at com.mysql.jdbc.ResultSetMetaData.getColumnName(ResultSetMetaData.java:249)
at Test.main(Test.java:28)
展开
 我来答
hjb368
2012-03-30 · 超过31用户采纳过TA的回答
知道答主
回答量:149
采纳率:0%
帮助的人:67.8万
展开全部
for(int i = 0 ; i < rsMetaData.getColumnCount() ; i++){
System.out.printf("%-12s\t", rsMetaData.getColumnName(i ));
// System.out.printf("%-12s\t", resultSet.getString(i));
}
改成
while(rsMetaData.next()){
System.out.printf("%-12s\t", rsMetaData.getString(1)); //打印数据库表中第一条记录的第一个属性
System.out.printf("%-12s\t", rsMetaData.getString(2)); ////打印数据库表中第一条记录的第二个属性
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
2012-03-30 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1697万
展开全部
rsMetaData.getColumnName
这个索引是从1开始,而不是0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坚喻求8605
2012-03-30 · TA获得超过185个赞
知道答主
回答量:140
采纳率:100%
帮助的人:60.1万
展开全部
古老的JDBC 真心看不懂了 貌似是输出表头那里出错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式