mySql-java简单的搜索控制台应用程序
问题描述:
我试图做一个搜索程序:前端 - java和后端 - mysql。mySql-java简单的搜索控制台应用程序
我试着一点点,下面的代码:
public static void searchRecord() throws SQLException{
Scanner in = new Scanner(System.in);
int empnum;
System.out.print("Enter employee number: ");
empnum = in.nextInt();
String search = "SELECT fname FROM employees WHERE emp_num='"+ empnum + "'";
resultSet = statement.executeQuery(search);
String empnum_rs = null;
while(resultSet.next()){
empnum_rs = resultSet.getString(empnum);
}
System.out.print(empnum_rs);
}
我来到这里的问题是,当我键入emp_num日食抛出这些行:
Exception in thread "main" java.sql.SQLException: Column Index out of range, 2 > 1.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ResultSetImpl.checkColumnBounds(ResultSetImpl.java:830)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5773)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5692)
at Test.searchRecord(Test.java:55)
at Test.main(Test.java:37)
答
的getXXX...
函数的列号从1开始到n,其中n是查询中选择的最大列数。您的查询只有一列被选中。而empnum
可能不等于1,因此会引发错误。
变化:
empnum_rs = resultSet.getString(empnum);
到:
empnum_rs = resultSet.getString(1);
哦感谢队友!我应该为我的emp_num放置列。再次感谢 – 2012-07-10 13:29:20
您可以在'get ...'方法中使用coumn编号或列名称。 – 2012-07-10 13:30:32
但是当我添加lname列时,它只显示fname。我如何连接姓氏? – 2012-07-10 13:30:38