带有数据库输出的Java更新JLabel
所以我要做的是更新一个JLabel,它将表示存储在数据库中的文件数量 我将使用JDBC将我的Java应用程序与我的数据库(Oracle)通信,并将SQL语句传递给我的数据库以返回输出,在这种情况下,它将是:带有数据库输出的Java更新JLabel,java,database,jdbc,io,jlabel,Java,Database,Jdbc,Io,Jlabel,所以我要做的是更新一个JLabel,它将表示存储在数据库中的文件数量 我将使用JDBC将我的Java应用程序与我的数据库(Oracle)通信,并将SQL语句传递给我的数据库以返回输出,在这种情况下,它将是:SELECT COUNT(File_ID)FROM Files这将给出一个输出,比如说50 所以现在我想更新我的Jlabel,我必须显示输出,在本例中,它的读数为50 我知道如何使用数据库中的结果更新JTable,如下所示: try { String query = "SQL STAT
SELECT COUNT(File_ID)FROM Files代码>这将给出一个输出,比如说50
所以现在我想更新我的Jlabel,我必须显示输出,在本例中,它的读数为50
我知道如何使用数据库中的结果更新JTable,如下所示:
try {
String query = "SQL STATEMENT GOES HERE";
pat = conn.prepareStatement(query);
rs = pat.executeQuery();
myTable.setModel(DbUtils.resultSetToTableModel(rs));
}catch (Exception e) {
e.printStackTrace();
}
但是,我从未使用输出来更新Jlabel,如果您对如何实现这一点有任何建议或建议,将不胜感激。谢谢 只需使用label.setText()
编辑:我没有找到jlabel的等效TextModel(它存在于其他组件中,如JTextField)。对你来说,通过一个“模型”是至关重要的,还是设置一个“50”就足够了
要提取计数,请执行以下操作:
int count=0;
pat = conn.prepareStatement("SELECT COUNT ..."); // complete as required
ResultSet rs=pat.executeQuery();// assuming it's "SELECT COUNT..."
if(rs.next())
count=rs.getInt(1);
?是的,所以我的问题是如何更新字符串以存储数据库的输出?我知道如何简单地设置JLabel文本。我的问题比这更深入一点。我需要弄清楚如何从我的数据库(它以结果集的形式出现(使用DBUtils))中获取转换为数据类型字符串的输出,然后存储在字符串变量中。然后我就可以使用label.setText(String);您的结果集应该包含一个整型列,因此您将有“int count=rs.getInt(1)”。这应该很容易转换为文本,例如setText(“+count”),首先让我说声谢谢你花时间来处理这个问题。我做了一些更改并产生了以下代码:try{String query=“SELECT COUNT(FILE_ID)FROM FILES WHERE USER_ID=1”;pat=conn.prepareStatement(query);rs=pat.executeQuery();if(rs.next())output=rs.getInt(1);lblFiles.setText(String.valueOf(output));}catch(异常e){e.printStackTrace()}
然而,我仍然收到一些NullPointerException(它似乎在第行中断:lblFiles.setText(String.valueOf(output));
我觉得你的代码还行。我的第一个怀疑是lblFiles是null-你能检查一下吗?你能告诉我你的“output”是声明为“int count”还是“Integer count”吗(后者也可以为null)lblFiles看起来不是null,它只包含一个空字符串(等待更新),并且输出被声明为int output=0;