package DisplayAuthors;
import java.sql.*;
public class DisplayAuthors
{
private static final String DATABASE_URL="jdbc:oracle:thin:@localhost:1521:orcl";
public static void main(String[] args) {
Connection connection=null;
Statement statement=null;
ResultSet resultset=null;
try
{
connection=DriverManager.getConnection(DATABASE_URL,"scott","123456");
statement=connection.createStatement();
resultset=statement.executeQuery("select * from emp");
ResultSetMetaData metadata=resultset.getMetaData();
int numberofcolumns=metadata.getColumnCount();
for(int count=0;count<numberofcolumns;count++) //here is question
{
System.out.printf("%-8s\t",metadata.getColumnName(count));
}
System.out.println();
while(resultset.next())
{
for(int count=0;count<numberofcolumns;count++) //here is question
{
System.out.printf("%-8s\t", resultset.getObject(count));
}
System.out.println();
}
}
catch(SQLException sqlexception)
{
sqlexception.printStackTrace();
}
finally
{
try
{
resultset.close();
statement.close();
connection.close();
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
}
import java.sql.*;
public class DisplayAuthors
{
private static final String DATABASE_URL="jdbc:oracle:thin:@localhost:1521:orcl";
public static void main(String[] args) {
Connection connection=null;
Statement statement=null;
ResultSet resultset=null;
try
{
connection=DriverManager.getConnection(DATABASE_URL,"scott","123456");
statement=connection.createStatement();
resultset=statement.executeQuery("select * from emp");
ResultSetMetaData metadata=resultset.getMetaData();
int numberofcolumns=metadata.getColumnCount();
for(int count=0;count<numberofcolumns;count++) //here is question
{
System.out.printf("%-8s\t",metadata.getColumnName(count));
}
System.out.println();
while(resultset.next())
{
for(int count=0;count<numberofcolumns;count++) //here is question
{
System.out.printf("%-8s\t", resultset.getObject(count));
}
System.out.println();
}
}
catch(SQLException sqlexception)
{
sqlexception.printStackTrace();
}
finally
{
try
{
resultset.close();
statement.close();
connection.close();
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
}
}
源代码如上,出现这个错误的原因是我输出的时候是从第0列开始输出的,但是实际上数据库的列是从第1列开始的。将count的值从1开始即可解决问题。