Wie kann man Date Object in Datenbank speichern****

vector_ever

Mitglied
Wie kann man Date Object in Datenbank speichern ?

Code:
public class Date_DB {
	
	private String name;
	private Date dateOfCommission;
	private Date dateOfdecommission;
	private Date dateOfGridAccess;
	private Date dateOfGridOutlet;
//Setters und Getters
}


Code:
PreparedStatement ps = connection.prepareStatement("INSERT INTO USERS  values (?, ?, ?, ?, ? )");
ps.setString(1, obj.getName());
ps.setDate(2,  obj.getDateOfCommission());  //Fehlermeldung (rote Kreuz)
ps.setDate(3,  obj.getDateOfdecommission());  //Fehlermeldung (rote Kreuz)
ps.setDate(4,  obj.getDateOfGridAccess());  //Fehlermeldung (rote Kreuz)
ps.setDate(5,  obj.getDateOfGridOutlet());  //Fehlermeldung (rote Kreuz)

Ich weiß nicht warum bekomme ich diese Fehlermeldung (rote Kreuz) wenn ich setDate() benutze, also habe ich falsch geschrieben?

wenn ich mache Cast
Code:
ps.setDate(2, (Date) obj.getDateOfCommission());

dann zeigt keine rote Kreuz aber beim Ausführung bekomme ich Fehlermeldung
HTML:
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date

Also was ist los?
 
Zuletzt bearbeitet:
Zeig doch mal die Definittion von obj.getDateOfCommission(). Und ist es Oracle?
Zuerst, die DateOfCommission und die andere Date Objekten werden von Excel Datei gelesen, denn in HashSet speichern
Code:
Date_DB pp = new Date_DB ();
pp.setDateOfCommission(row.getCell(12).getDateCellValue());  ///date
pp.setDateOfdecommission(row.getCell(13).getDateCellValue());  ///date
pp.setDateOfGridAccess(row.getCell(14).getDateCellValue());  ///date
pp.setDateOfGridOutlet(row.getCell(15).getDateCellValue());  ///date
set.add(pp);

Danach Speichern die Elemente Von Set direkt in DB
Code:
PreparedStatement ps = connection.prepareStatement("INSERT INTO USERS  values (?, ?, ?, ?, ? )");
	           
 Iterator<Date_DB> it = dataHolder.iterator();
while (it.hasNext()){
Date_DB obj = it.next();
	        	   
ps.setString(1, obj.getName());
ps.setDate(2,  obj.getDateOfCommission());  //Fehlermeldung (rote Kreuz)
ps.setDate(3,  obj.getDateOfdecommission());  //Fehlermeldung (rote Kreuz)
ps.setDate(4,  obj.getDateOfGridAccess());  //Fehlermeldung (rote Kreuz)
 ps.setDate(5,  obj.getDateOfGridOutlet());  //Fehlermeldung (rote Kreuz)

ps.executeUpdate();
				}

Ich benutze MySql
 
Zuletzt bearbeitet:
Date von Excel Lesen und Date Format ändern

Hallo,

i habe excel Datei (Apache Poi Bibliotehk), sollte eigene spalte gelesen und in DB gespeichert werden, eine spalte ist Date
PHP:
Date
========
14.12.2010
15.12.2010
16.12.2010
17.12.2010
18.12.2010
19.12.2010
20.12.2010
21.12.2010
22.12.2010

Code:
public class Date_DB {
    
    private String name;
    private Date dateOfCommission;
   //Setters und Getters

Klasse wo von Excel Datei liest
Code:
Date_DB pp = new Date_DB();
pp.setDateOfCommission(row.getCell(12).getDateCellValue());  ///date
set.add(pp);

Beim Lesen und Speichern in HashSet, die Zeit zeigt genau wie:
HTML:
Tue Dec 14 00:00:00 CET 2010
Wed Dec 15 00:00:00 CET 2010
Thu Dec 16 00:00:00 CET 2010
Fri Dec 17 00:00:00 CET 2010
Sat Dec 18 00:00:00 CET 2010
Sun Dec 19 00:00:00 CET 2010
Mon Dec 20 00:00:00 CET 2010
Tue Dec 21 00:00:00 CET 2010
Wed Dec 22 00:00:00 CET 2010

Ich möchte Aber Format der Zeit ändern, genau wie in Excel Datei (genau wie "dd.MM.yyyy") und danach in HashSet als Date wieder Speichern
Ich habe viel über Calender und Date Format gelesen, aber habe meine Antwort nicht gefunden
 
Ja mir ist klar mit SimpleDateFormat kann ich kriege die erwünschte Date Format, aber nur als String, ich möchte aber die ändern und immer als Date nicht String
Code:
SimpleDateFormat  sdf = new SimpleDateFormat("dd.MM.yyyy");

Was Ich möchte dass nur die Format ändern nicht aber Data Art von Date zu String, ich möchte die später in DatenBank als Date Speichern.
Also wie kann ich so machen?
 
Zurück