我一直在尝试很多语法,但我无法弄明白。 我想在我的数据库中显示“发票编号”到文本字段(表“transaksi”中的字段“invoice”已填充数字)但它不会显示任何内容。这是我的代码:
private void InvoiceActionPerformed(java.awt.event.ActionEvent evt) {
ResultSet aa = null;
try {
koneksi objKoneksi = new koneksi();
Connection kon = objKoneksi.bukaKoneksi();
Statement stat = kon.createStatement();
String query ="select invoice from transaksii";
String res = aa.getString(query);
Invoice.setText(res);
}
catch (SQLException e) {}
}
注意: - 发票是前JTextField1。 - transaksii =我桌子的名字。 - invoice =字段的名称。
谢谢。英语不是我的母语。
答案 0 :(得分:1)
您没有执行查询。 aa
的值为null,您可能会获得NullPointerException
。
String query ="select invoice from transaksii";
aa=stat.executeQuery(query);
if(aa.next())
String res = aa.getString("invoice");
注意:拥有一个空catch
不是一个好习惯,因为你最终会不知道现在这样的异常。你应该在catch块中做e.printStackTrace();
。
答案 1 :(得分:1)
原始代码中只有1个问题。在行aa = stat.executeQuery(query);
中返回的结果集当前位于返回第一个结果之前的位置。所以当你打电话给aa.getString
时,它不会像第一个结果那样返回任何东西。此外,ResultSet.getString
采用int
的参数或表示列名的String
参数。但在您的情况下,您已将查询作为参数传递。
因此,如果您只想返回ResultSet
的第一项,则更正的代码应为:
private void InvoiceActionPerformed(java.awt.event.ActionEvent evt) {
ResultSet aa = null;
try {
koneksi objKoneksi = new koneksi();
Connection kon = objKoneksi.bukaKoneksi();
Statement stat = kon.createStatement();
String query ="select invoice from transaksii";
aa = stat.executeQuery(query);
String res = "";
if(aa.next()){ // checks and moves it to 1st position
res = aa.getString("invoice"); //column name of the column
}
Invoice.setText(res);
}catch(SQLException e){
e.printStackTrace();
}finally{
//The closing of connection, statement and resultset.
}
}