Hallo,
ich habe mich heute etwas mehr mit Datenbanken beschäftigt, dabei vorallem mit SQLLite ich wollte also einen Terminkalender schreiben , der die Termine halt in so einer Datenbank speichert also mit Datum, Beschreibung und evtl noch Ersteller , was aber erst unwichtig ist. Also wollte ich eine Test-Programme programmieren und etwas die Tutorials im Internet durcharbeiten und es kam dieses Programm zustande (schonmal Entschuldigung für die teils sinnlosen Variabeln Bezeichnungen etc. , habe die einfach so genannt
Und hier noch die Main-Methode (ignoriert Version und MainFrame
undzwar sieht man in der DB-Hauptklasse , dass ein großer Bereich auskommentiert ist, da dieser immer ausgeführt wird , obwohl er ja eigentlich nur bei Beendigung ausgeführt werden soll oder beim Runterfahren und wenn ich das Programm mit diesen auskommentierten Zeilen starte , dann bleibt er bei der Konsolen-Ausgabe "Verbindung hergestellt!" und gibt nicht die Datenbank-Objekte aus.
Wie müsste ich das Programm ändern, das er mir die 2 gespeicherten Datenbank Objekte ausgibt ??
MFG
Hannes
ich habe mich heute etwas mehr mit Datenbanken beschäftigt, dabei vorallem mit SQLLite ich wollte also einen Terminkalender schreiben , der die Termine halt in so einer Datenbank speichert also mit Datum, Beschreibung und evtl noch Ersteller , was aber erst unwichtig ist. Also wollte ich eine Test-Programme programmieren und etwas die Tutorials im Internet durcharbeiten und es kam dieses Programm zustande (schonmal Entschuldigung für die teils sinnlosen Variabeln Bezeichnungen etc. , habe die einfach so genannt
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SQLStuff {
private static final SQLStuff stuff = new SQLStuff();
private static Connection c;
private static final String DB_PATH = System.getProperty("user.home")+"/"+"LOL.db";
static{
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException e) {
System.err.println("Der JDBC-Treiber konnte nicht geladen werden");
e.printStackTrace();
}
}
private SQLStuff(){
}
public static SQLStuff getInstance(){
return stuff;
}
public void intialisiereDBConc(){
try {
if(c != null)
return;
System.out.println("Verbindung wird hergestellt");
c=DriverManager.getConnection("jdbc:sqlite:" + DB_PATH);
if(!c.isClosed())
System.out.println("Verbindung hergestellt!");
} catch (SQLException e) {
throw new RuntimeException(e);
}
/*Runtime.getRuntime().addShutdownHook(new Thread(){
public void run() {
try {
if(!c.isClosed() && c !=null){
c.close();
if(c.isClosed()){
System.out.println("Verbindung zur Datenbank wurde getrennt");
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
*/
}
public void handelDB(){
try {
Statement st = c.createStatement();
st.executeUpdate("DROP TABEL IF EXISTS lel;");
st.executeUpdate("CREATE TABLE(Lel,lol,eier)");
st.execute("INSERT INTO lel(Lel,lol,eier)VALUES(´Lel´,´LOL´,´3´");
PreparedStatement pm = c.prepareStatement("INSERT INTO lel VALUES(?,?,?);");
pm.setString(1, "lel");
pm.setString(1, "Lol");
pm.setInt(3, 5);
pm.addBatch();
c.setAutoCommit(false);
pm.executeBatch();
c.setAutoCommit(true);
ResultSet rs = st.executeQuery("SELECT * FROM lel");
while(rs.next()){
System.out.println(rs.getString("Lel"));
System.out.println(rs.getString("lol"));
System.out.println(rs.getInt("eier"));
}
} catch (Exception e) {
}
}
}
Und hier noch die Main-Methode (ignoriert Version und MainFrame
Java:
public class MainClass {
private final double VERSION = 0.5;
public double getVERSION() {
return VERSION;
}
public static void main(String[] args) {
//MainFrame mf = new MainFrame();
//mf.setVisible(true);
SQLStuff ss = SQLStuff.getInstance();
ss.intialisiereDBConc();
ss.handelDB();
}
}
undzwar sieht man in der DB-Hauptklasse , dass ein großer Bereich auskommentiert ist, da dieser immer ausgeführt wird , obwohl er ja eigentlich nur bei Beendigung ausgeführt werden soll oder beim Runterfahren und wenn ich das Programm mit diesen auskommentierten Zeilen starte , dann bleibt er bei der Konsolen-Ausgabe "Verbindung hergestellt!" und gibt nicht die Datenbank-Objekte aus.
Wie müsste ich das Programm ändern, das er mir die 2 gespeicherten Datenbank Objekte ausgibt ??
MFG
Hannes