Java 如何清除jTable中插入的所有数据
我设计了一个jTable,它将在MySql数据库中显示表中的数据 表名为Java 如何清除jTable中插入的所有数据,java,mysql,swing,jtable,Java,Mysql,Swing,Jtable,我设计了一个jTable,它将在MySql数据库中显示表中的数据 表名为studentrolls,主键为walkid(int),外键为StudentID(Varchar),BachID(year) 因此,在jtext字段中键入StudentID并单击jb按钮后,jTable中应该只显示有关该学生的数据 它实际上可以工作,但我有两个问题,不是在年份栏上显示年份,而是显示日期,例如,它应该显示2020,但它显示2020-01-01 主要问题是,当我输入另一个StudentID时,它会将新结果添加到旧
studentrolls
,主键为walkid
(int),外键为StudentID
(Varchar),BachID
(year)
因此,在jtext字段中键入StudentID
并单击jb按钮后,jTable中应该只显示有关该学生的数据
它实际上可以工作,但我有两个问题,不是在年份栏上显示年份,而是显示日期,例如,它应该显示2020,但它显示2020-01-01
主要问题是,当我输入另一个StudentID
时,它会将新结果添加到旧结果中,因此当我第一次输入一个StudentID
时,我会得到好结果,然后当我输入另一个StudentID
并单击表中的按钮时,新结果与第一个学生的结果混合在一起,等等
有没有办法解决这个问题并在插入新结果之前清除表格
这是我的密码:
private void rSButtonIconDsearchstidActionPerformed(java.awt.event.ActionEvent evt) {
try{
String sqlqueryPastYHi = "SELECT * FROM studentrolls WHERE StudentID = ? ORDER BY BachID";
PreparedStatement preparedStatement = con.prepareStatement(sqlqueryPastYHi);
PreparedStatement pst=con.prepareStatement(sqlqueryPastYHi);
if(!jTextFieldsearchstid.getText().isEmpty() ) {
preparedStatement.setString(1, jTextFieldsearchstid.getText());
ResultSet resultSet = preparedStatement.executeQuery();
while(resultSet.next()){
String scolaryear = resultSet.getString("BachID");
String stclass = resultSet.getString("ClassID");
String totpercent = String.valueOf(resultSet.getInt("PourcentTotal"));
String finalplace = String.valueOf(resultSet.getInt("PlaceFinale"));
String appication = resultSet.getString("Aplication");
String behavior = resultSet.getString("Conduite");
String finalaction = resultSet.getString("ActionFinale");
String pastHistTableData [] = {scolaryear, stclass, totpercent, finalplace, appication, behavior, finalaction};
DefaultTableModel tblModel = (DefaultTableModel)jTablehipastyears.getModel();
tblModel.addRow(pastHistTableData);
}
}
else{
JOptionPane.showMessageDialog(this, "Veillez taper le matricule d'un eleve svp.");
}
}catch (Exception exception){
JOptionPane.showMessageDialog(this, "erreur des donnees: " + exception.getMessage());
}
}
有没有办法解决这个问题并在插入新结果之前清除表格
您可以尝试使用谢谢@camickr我使用您的方法更改了以下代码,并且成功了
if(!jTextFieldsearchstid.getText().isEmpty() ) {
preparedStatement.setString(1,
jTextFieldsearchstid.getText());
ResultSet resultSet = preparedStatement.executeQuery();
DefaultTableModel tblModel =
(DefaultTableModel)jTablehipastyears.getModel();
tblModel.setRowCount(0);
while(resultSet.next()){
String scolaryear = resultSet.getString("BachID");
String stclass = resultSet.getString("ClassID");
String totpercent =
String.valueOf(resultSet.getInt("PourcentTotal"));
String finalplace =
String.valueOf(resultSet.getInt("PlaceFinale"));
String appication =
resultSet.getString("Aplication");
String behavior = resultSet.getString("Conduite");
String finalaction =
resultSet.getString("ActionFinale");
String pastHistTableData [] = {scolaryear, stclass,
totpercent, finalplace, appication, behavior,
finalaction};
tblModel.addRow(pastHistTableData);
}
在我的代码中,我可以在哪里添加这些行@camickr您只需将代码移出当前循环即可。@Kokotech很高兴这有帮助。不要忘记通过点击复选标记(答案旁边)来“接受”答案,这样人们就知道问题已经解决了。请参阅:。当变量类型为“YEAR”时,显示一年的完整日期整数的问题如何?(1-)这不会像OP所要求的那样“清除表”。
if(!jTextFieldsearchstid.getText().isEmpty() ) {
preparedStatement.setString(1,
jTextFieldsearchstid.getText());
ResultSet resultSet = preparedStatement.executeQuery();
DefaultTableModel tblModel =
(DefaultTableModel)jTablehipastyears.getModel();
tblModel.setRowCount(0);
while(resultSet.next()){
String scolaryear = resultSet.getString("BachID");
String stclass = resultSet.getString("ClassID");
String totpercent =
String.valueOf(resultSet.getInt("PourcentTotal"));
String finalplace =
String.valueOf(resultSet.getInt("PlaceFinale"));
String appication =
resultSet.getString("Aplication");
String behavior = resultSet.getString("Conduite");
String finalaction =
resultSet.getString("ActionFinale");
String pastHistTableData [] = {scolaryear, stclass,
totpercent, finalplace, appication, behavior,
finalaction};
tblModel.addRow(pastHistTableData);
}