Berechnen von Längen durch Start- und Endzeit

Hi,

ich bin ein relativer neuling und bin grad dran aus einer MySql DB Daten einer Tabelle einzulesen. Hier möchte ich dann aus „TaskStart“ und „TaskEnd“ (beides Typ datetime in sql) die Dauer in min anzeigen lassen. D.H. ich möchte das ganze in einer jTable sichtbar machen.
Meine Methode:

 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package algorithm;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.ResultSet;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.util.Date;



/**
 *
 * @author xxx
 */
public class CalculateDuration {
    
    private AlgorithmManagement managerAlg;
    private Statement stmt;
    private Connection con;
    private String url = "jdbc:mysql://localhost:3306/";
    private String user = "root";
    private String pass = "";
    private String driver = "com.mysql.jdbc.Driver";
    private ResultSet res;
    private String db = "modules";
    
    
    
    
    
    
    public CalculateDuration(AlgorithmManagement managerAlg) {
        this.managerAlg = managerAlg;           
    }
    
       
    public Object[][] calDuration() {
        Object[][] list = null;  
        Object[] z = null;
        int listSize = 0;
        Date date;
        Date date2;
        try {
            Class.forName(driver);
            con = (Connection) DriverManager.getConnection(url + db  , user, pass);
            stmt = (Statement) con.createStatement();

            res = (ResultSet) stmt.executeQuery( "SELECT TaskCommonDim, " +
                                                 "TaskStart, " +
                                                 "TaskEnd, " +
                                                 "Piority, " + 
                                                 "TimeFrame " +
                                                 "FROM m1 " +
                                                 "ORDER BY TaskStart ");
            while (res.next()) {
                listSize++;
            }
            res.first();

            z = new Object[listSize];
            for (int i = 0; i < listSize; i++ ) {
                date = res.getTime("TaskStart");
                date2 = res.getTime("TaskEnd");
                z** = (date2.getTime() - date.getTime())/6000;
                res.next();
            }
            System.out.println(z);
            date = res.getTime("TaskStart");
            
            res.first();
            
            if (listSize > 0) {
                list = new Object[listSize][4];
                for (int i = 0; i < listSize; i++) {
                    list**[0] = res.getString("TaskCommonDim");
                    list**[1] = z;
                    list**[2] = res.getString("Piority");
                    list**[3] = res.getString("TimeFrame");

                    res.next();
                }
            }
            con.close();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        System.out.println(list);
        return list;
    }
}

die Anbindung an dem JTable steht schon!
Mein Problem ist, das mir nur das erste Object von z angezeigt wird und das ganze als „java.lang.Object@bla“

Kann jemand sehen was ich falsch mache - bin langsam am verzweifeln!
Danke im Voraus!:slight_smile:

du musst dir einen eigenen Renderer schreiben oder die toString überschreiben siehe Wiki

Mein JTable steht auch schon!
Wenn ich in Zeile 81. nun

list**[1] = Arrays.toString(z);

einfüge, bekomme ich in meinem JTable in jeder Zeile das Array mit den Längen. Ich will aber das er hier sich immer das i-te z aus der ersten for-Schleife holt!
Die Frage ist wie?

dann musst du ihm das sagen :wink:
Jetzt sagst du ihm nur mach aus z einen String und pack ihn da rein

klar!!! z**