如何从jTextField中检索信息

时间:2012-06-13 06:12:17

标签: java sql swing jtextfield parseint

我正在从事个人项目。我正在创建一个打卡时钟程序,所以我需要帮助的部分是用户在jTextField中输入uid的地方。因此,我需要检索uid(#######),然后使用sql语句在数据库中搜索该uid。所以这就是我到目前为止所拥有的。问题是jTextField1.getText下面有一个红线,当我运行它时,表示=

"setInt(int,int) in java.sql.PreparedStatement cannot be applied to (int,java.lang.String) pstmt.setInt(1, jTextField1.getText());"

感谢任何帮助。谢谢。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    try{
        stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        String sql = "SELECT * FROM Students WHERE STUDENTID = ?";
        PreparedStatement pstmt = con.prepareStatement(sql);
        pstmt.setInt(1, jTextField1.getText()); // Retrieve uid from jTextField
        ResultSet rs = pstmt.executeQuery();
        while(rs.next()){
            String first = rs.getString(2);
            String last = rs.getString(3);
            String hours = rs.getString(6);

            fName.setText(first);
            lName.setText(last);
            tHours.setText(hours);
        }
    }
    catch(SQLException err){
        JOptionPane.showMessageDialog(Student.this, err.getMessage());
    }

}

2 个答案:

答案 0 :(得分:6)

jTextField1.getText()将返回String use parseInt以转换为int

pstmt.setInt(1, Integer.parseInt(jTextField1.getText()));

答案 1 :(得分:5)

documentation可以看出,setInt()方法将这两个参数都视为int

public void setInt(int parameterIndex,
                   int x)

所以,你需要改变这个:

 pstmt.setInt(1, jTextField1.getText()); 

为:

 pstmt.setInt(1, Integer.parseInt(jTextField1.getText())); 

因为getText()方法returns a String