MySQL TIMESTAMP in JAVA Date umwandeln (und umgekehrt)

Posted: Januar 28th, 2009 | Filed under: Programmieren | Tags: , , , , , | 3 Comments »

Oft ist beim entwickeln von Java basierten Webanwendungen so dass man Daten in einer Datenbank über eine Objekt abbilden will. Zum Beispiel bei einem Gästebucheintrag.

Da MySQL und JAVA mit unterschiedlichen Datentypen arbeiten kommt es oft zu Problemen. Wie bilde ich zum Beispeil einen MySQL Timestamp über ein Java Date ab? Aus diesem Grund habe ich mir zwei kleine Helfer Methode geschrieben die dieses Problem für mich lösen soll.


  public Collection<Eintrag> getAllEintraege(){
    Connection connection = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;
    String query = "SELECT ID, NAME, EMAIL, TEXT, DATEANDTIME FROM GAESTEBUCH";
    
    Collection<Eintrag> eintraege = new ArrayList<Eintrag>();
    
    try {
      connection = GenericDataSourceFactory.getDataSource().getConnection();
      preparedStatement = connection.prepareStatement(query);
      resultSet = preparedStatement.executeQuery();
      while(resultSet.next()){
        Eintrag eintrag = new Eintrag();
        
        eintrag.setInt(resultSet.getInt(1));
        eintrag.setName(resultSet.getString(2));
        eintrag.setEmail(resultSet.getString(3));
        eintrag.setText(resultSet.getString(4));
        eintrag.setDate(sqlTimestampToDate(resultSet.getTimestamp(5)));
        
        eintraege.add(eintrag);
      }
    catch (SQLException e) {
      e.printStackTrace();
    }finally {
      closeConnections(connection, preparedStatement, resultSet);
    }
    return eintraege;
  }

  public Date sqlTimestampToDate(Timestamp timestamp){
    Date date = new Date(timestamp.getTime());
    return date;
  }
  
  public Timestamp dateToSqlTimestamp(Date date){
    Timestamp timestamp = new Timestamp(date.getTime());
    return timestamp;
  }