1

在这个类中,我试图只在JTable. 数据来自数据库。我不需要重复数据。

public JTable getHeute(){

            DBconnect verbinden = new DBconnect();
            verbinden.erstelleVerbindung();

            JTable Habwesend=new JTable();
            Habwesend.setBounds(10, 30, 290, 400);
            Habwesend.setEnabled(false);
            DefaultTableModel dm=new DefaultTableModel();

            try {
            ResultSet rs= verbinden.sqlStatement.executeQuery("select MA_ID from AB_Spanne where(Date() >= Start and Date() <= Ende)");
            ResultSetMetaData rsmd=rs.getMetaData();
            //Coding to get columns-
            int cols=rsmd.getColumnCount();
            String c[]=new String[cols];
            for(int i=0;i<cols;i++){
                c[i]=rsmd.getColumnName(i+1);
                for (int k = 0; k < c.length; k++) {
                    dm.addColumn(c[k]);
                }



            }

            Object row[]=new Object[cols];
            while(rs.next()){
                for(int i=0;i<cols;i++){
                        row[i]=rs.getString(i+1);
                    }
                dm.addRow(row);
            }


            Habwesend.setModel(dm);
            verbinden.schliesseVerbindung();


    }
4

2 回答 2

1

将您的查询更改为:

"SELECT DISTINCT MA_ID from AB_Spanne where(Date() >= Start and Date() <= Ende)"

您可以在 java 中执行此操作(不推荐且性能不佳):

//UNTESTED CODE
List<Object> Objectlist = new List<Object>();
// ...
Object row[]=new Object[cols];

while(rs.next()){

   for(int i=0;i<cols;i++){
      row[i]=rs.getString(i+1);
   }

   if !(Objectlist.Contains(row)){
      dm.addRow(row);
   }
}

// 我想为了让包含方法起作用,您可能需要创建自己的对象,在其中覆盖相等/比较方法。

于 2013-01-15T09:38:56.440 回答
0

而不是List,使用Set并保持其余代码相同。那是你的java解决方案,白衣:

// Set dm = new HashSet();
  Object row[]=new Object[cols];
            while(rs.next()){
                for(int i=0;i<cols;i++){
                        row[i]=rs.getString(i+1);
                    }
                dm.addRow(row);
            }
           Habwesend.setModel(dm);
            verbinden.schliesseVerbindung();
于 2013-01-15T10:57:53.703 回答