如何用sql在标签上显示结果

时间:2017-05-20 20:08:20

标签: java sql jdbc

更新
我更改了sql查询(只是测试它,它适用于sql但仍然不能使用java,不为什么:(

您好如何使用此代码在jLabel上添加get结果?是否可以在jTable上显示结果?

private void searchTeacherActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    String sql = ("select student_ID, firstName, afterName FROM student JOIN studentHom ON course = studentHom_ID WHERE prefect = ?

    try {
        pst = connection.prepareStatement(sql);

        pst.setString(1, larareSoka.getText());
        pst.execute();

    } catch (Exception e) {
        JOptionPane.showMessageDialog(rootPane, e);
    }
}

2 个答案:

答案 0 :(得分:1)

首先不要使用(?)您只能使用?

select ... where course.courseStart = ? and course.corse.end = ?

第二次你必须在你拖曳的情况下为你的查询设置参数,所以你必须使用:

pst.setString(1, value_of_courseStart);
pst.setString(2, value_of_corse.end);

第三次得到结果你必须像这样使用ResultSet:

ResultSet result = preparedStatement.executeQuery();
if (result.next()) {
    String firstname = result.getString(1);
    //----------------------------------^
    //...same for the other columns
}

或者您可以使用这样的列名称:

ResultSet result = preparedStatement.executeQuery();
if (result.next()) {
    String firstname = result.getString("firstName");
    //--------------------------------------^^
    //...same for the other columns
}

注意

  1. 如果您想获得多个结果,可以使用while代替if
  2. 您的查询有点用于您使用的原因:
  3. course.courseStart = (?) and course.corse.end = (?)
    //no point---^                           ^------Why this point here
    

    您的意思是course.courseStart = ? and course.corseEnd = ?

答案 1 :(得分:0)

ResultSet rs = pst.executeQuery(); 
String firstname = rs.getString("firstname");
..
jLable.setText(firstname);

...您需要从结果集中读取数据