Hallo ihr Lieben,
zu Anfang. Ich bin eine totale Anfängerin. Von daher stoße ich schnell an meine Grenzen.
Mein Problem ist, ich moechte Daten aus eine CSV Datei auslesen und diese dann in eine Datenbanktabelle eintragen. Ich habe das bisher so geloest das er Zeile fuer Zeile in ein String array einliest und dann Wort fuer Wort ausgibt. Soweit funktioniert das ja..wenn ich es mit System.out.println() ausgebe. zeigt er mir die daten auch an..das er sie gefunden hat und gibt sie auch aus wie sie in der CSV datei drin stehen. Nun moechte ich das er in dem String array, die datumsangaben auch als Format Date in die Datenbank eintraegt, aber ich weiss nicht wie das zu konvertieren ist, das es auch fuer SQL passend ist.
Ich poste einfach mal den ganzen Quelltext hier rein damit man mal einen kleinen ueberblick bekommt:
und eine Warnung die er immer ausgibt.
Datenbankverbindung.java:176:35: warning: [deprecation] getYear() in java.util.Date has been deprecated
datum = new Date(datum.getYear(), datum.getMonth(), datum.getDay());
hat wer zufaellig eine andere Methode das Datum zu kovertieren?
Ich hab da irgendwas gelesen mit Millisekunden heraus bekommen damit man den Konstruktor von Date nutzen kann, der nicht veraltet ist.
Vielen Dank
zu Anfang. Ich bin eine totale Anfängerin. Von daher stoße ich schnell an meine Grenzen.
Mein Problem ist, ich moechte Daten aus eine CSV Datei auslesen und diese dann in eine Datenbanktabelle eintragen. Ich habe das bisher so geloest das er Zeile fuer Zeile in ein String array einliest und dann Wort fuer Wort ausgibt. Soweit funktioniert das ja..wenn ich es mit System.out.println() ausgebe. zeigt er mir die daten auch an..das er sie gefunden hat und gibt sie auch aus wie sie in der CSV datei drin stehen. Nun moechte ich das er in dem String array, die datumsangaben auch als Format Date in die Datenbank eintraegt, aber ich weiss nicht wie das zu konvertieren ist, das es auch fuer SQL passend ist.
Ich poste einfach mal den ganzen Quelltext hier rein damit man mal einen kleinen ueberblick bekommt:
Java:
import java.sql.*;
import java.lang.*;
import java.text.*;
public class Datenbankverbindung
{
private Connection con = null;
private Statement stmt = null;
private PreparedStatement prstmt = null;
private Setup stp = null;
private String username = null;
private String password = null;
private String db = null;
Datenbankverbindung(String db, String username, String password)
{
try
{
this.db = db;
this.username = username;
this.password = password;
con = DriverManager.getConnection(db, username, password);
try
{
con.close();
}
catch (SQLException e)
{
System.out.println("Verbindungsfehler zur Datenbank: " + e.getMessage());
}
catch(Exception e)
{
System.out.println("Fehler beim Schliessen der Datenbank: " + e.getMessage());
}
}
catch(SQLException e)
{
System.out.println("Verbindungsfehler zur Datenbank: " + e.getMessage());
}
}
protected Datenbankverbindung()
{
}
public void einfuegen(String[] array)
{
String Tabellenname = this.stp.getComboBoxText();
boolean ersteZeile = true;
try
{
if(ersteZeile)
{
ersteZeile = false;
if(Tabellenname.equals("Kooperationsbetriebe"))
{
prstmt = this. con.prepareStatement("INSERT INTO " + Tabellenname + "("
+ "K_ID, "
+ "Firmenname, "
+ "Anrede, "
+ "Name, "
+ "Vorname, "
+ "Strasse, "
+ "PLZ, "
+ "Ort, "
+ "Telefon, "
+ "Fax, "
+ "Email, "
+ "Kooperationsstart, "
+ "Kooperationsende, "
+ "Datum ) "
+ "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
}
else if(Tabellenname.equals("Verbundslehrlinge"))
{
prstmt = this. con.prepareStatement("INSERT INTO " + Tabellenname + "("
+ "V_ID, "
+ "Anrede, "
+ "Name, "
+ "Vorname, "
+ "Strasse, "
+ "PLZ, "
+ "Ort, "
+ "Geburtsdatum, "
+ "Staatsangehoerigkeit, "
+ "Telefon, "
+ "Email, "
+ "Ausbildungsbeginn, "
+ "geplantes_Ausbildungsende, "
+ "tatsaechliches_Ausbildungsende, "
+ "F_Beruf_ID, "
+ "F_A_ID, "
+ "Datum ) "
+ "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
}
else if(Tabellenname.equals("Ausbilder"))
{
prstmt = this. con.prepareStatement("INSERT INTO " + Tabellenname + "("
+ "A_ID, "
+ "Anrede, "
+ "Name, "
+ "Vorname, "
+ "Strasse, "
+ "PLZ, "
+ "Ort, "
+ "Telefon, "
+ "Fax, "
+ "Email, "
+ "F_Beruf_ID, "
+ "Datum ) "
+ "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
}
else if(Tabellenname.equals("Betriebszugehoerigkeit"))
{
prstmt = this. con.prepareStatement("INSERT INTO " + Tabellenname + "("
+ "F_V_ID, "
+ "F_K_ID, "
+ "Beginn, "
+ "geplantes_Ende, "
+ "tatsaechliches_Ende, "
+ "Datum ) "
+ "VALUES(?, ?, ?, ?, ?, ?)");
}
else if(Tabellenname.equals("Ausbildungsberufe"))
{
prstmt = this. con.prepareStatement("INSERT INTO " + Tabellenname + "("
+ "Beruf_ID, "
+ "Bezeichnung ) "
+ "VALUES(?, ?)");
}
else if(Tabellenname.equals("Anrede"))
{
prstmt = this. con.prepareStatement("INSERT INTO " + Tabellenname + "("
+ "Anrede_ID, "
+ "Bezeichnung ) "
+ "VALUES(?, ?)");
}
else
{
SimpleDateFormat sdf = new SimpleDateFormat("dd.mm.yyyy");
java.util.Date date = null;
java.sql.Date datum = null;
if(Tabellenname.equals("Kooperationsbetriebe"))
{
this.prstmt.setInt(1, Integer.parseInt(array[0]));
this.prstmt.setString(2, array[1]);
this.prstmt.setString(3, array[2]);
this.prstmt.setString(4, array[3]);
this.prstmt.setString(5, array[4]);
this.prstmt.setString(6, array[5]);
this.prstmt.setInt(7, Integer.parseInt(array[6]));
this.prstmt.setString(8, array[7]);
this.prstmt.setString(9, array[8]);
this.prstmt.setString(10, array[9]);
date = sdf.parse(array[10]);
datum = new Date(datum.getYear(), datum.getMonth(), datum.getDay());
this.prstmt.setDate(11, datum);
date = sdf.parse(array[11]);
datum = new Date(datum.getYear(), datum.getMonth(), datum.getDay());
this.prstmt.setDate(12, datum);
date = sdf.parse(array[12]);
datum = new Date(datum.getYear(), datum.getMonth(), datum.getDay());
this.prstmt.setDate(13, datum);
}
}
}
}
catch (SQLException e)
{
System.out.println("Es gab einen Fehler während der Ausführung der SQL Anweisung: " + e.getMessage());
}
catch (ParseException pe)
{
System.out.println("Die Umwandlung des Datums hat nicht funktioniert");
pe.printStackTrace();
}
}
//
public void schliesseStatement()
{
try
{
this.prstmt.close();
}
catch(Exception e)
{
}
}
}
und eine Warnung die er immer ausgibt.
Datenbankverbindung.java:176:35: warning: [deprecation] getYear() in java.util.Date has been deprecated
datum = new Date(datum.getYear(), datum.getMonth(), datum.getDay());
hat wer zufaellig eine andere Methode das Datum zu kovertieren?
Ich hab da irgendwas gelesen mit Millisekunden heraus bekommen damit man den Konstruktor von Date nutzen kann, der nicht veraltet ist.
Vielen Dank