【问题标题】:mySql-java simple search console applicationmySql-java 简单的搜索控制台应用程序
【发布时间】:2012-07-09 23:44:30
【问题描述】:

我正在尝试做一个搜索程序:前端 - java 和后端 - mysql。

我试了一下,代码如下:

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 时,eclipse 会抛出这些行:

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)

【问题讨论】:

    标签: java mysql search


    【解决方案1】:

    getXXX... 函数采用从 1 到 n 的列号,其中 n 是查询中选择的最大列数。您的查询只有一列可供选择。并且empnum 可能不等于 1,因此会引发错误。

    变化:

    empnum_rs = resultSet.getString(empnum);
    

    到:

    empnum_rs = resultSet.getString( 1 );
    

    【讨论】:

    • 哦,谢谢伙计!我应该为我的 emp_num 写一列。再次感谢
    • 您可以在get... 方法中使用列号或列名。
    • 但是当我添加 lname 列时,它只显示 fname。如何连接姓氏?
    • 您可以修改选择查询并连接要求字段。 select concat(fname, ' ', lname) as user_name from my_table where empnum=?。还建议使用PreparedStatement 而不是Statement
    • 哦,对不起,这么愚蠢的问题,我设法做到了:String empnum_rs = null;字符串 emplname_rs = null; while(resultSet.next()){ empnum_rs = resultSet.getString(1); emplname_rs = resultSet.getString(2); } System.out.print(empnum_rs + " " + emplname_rs); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    相关资源
    最近更新 更多