java 链接数据库

来源:百度知道 编辑:UC知道 时间:2024/06/21 19:24:57
现在这个程序可以正常运行,但是如果我把select 语句中的* 改成其中一个字段名比如name,却只显示第一条记录中的内容?这是怎么回事?谢谢
import java.sql.*;
public class Test
{
public static void main(String[] args)
{
Connection con;
Statement sql;
ResultSet rs;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e)
{
}
try
{
con=DriverManager.getConnection("jdbc:odbc:sun","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM t1");
while(rs.next())
{
System.out.print(rs.getString(1)+"\t");
System.out.print(rs.getString(2)+"\t");
System.out.print(rs.getString(3)+"\t");
System.out.println(rs.getString(4)+"\t");
}
}
catch(SQLExce

System.out.print(rs.getString(1)+"\t");
System.out.print(rs.getString(2)+"\t"); //在取这个字段时出错,没有第二字段
System.out.print(rs.getString(3)+"\t");
System.out.println(rs.getString(4)+"\t");

catch(SQLException e)
{
//这里你什么都不做,也看不到出错的信息,所以就出了一条记录,就没有了,你把错误信息打出来就好了
}

当然的啦,因为你给出name它只能查出name的一行记录,如果你要查询name的多行记录要换一种查询方式。用这种rs=sql.executeQuery只能查询一行。你查出的是System.out.print(rs.getString(1)+"\t"); 的内容。

qisg931 的回答是对的。

原因:你修改过SQL语句后,返回的结果集 是只有name字段的序列。所以在取rs.getString(2)之类其他字段时,就报错了。