Hallo,
ich habe mir eine Klasse geschrieben die es mir erlauben auf meine Datenbanken zuzugreifen und Sachen auszulesen, zu verändern und zu löschen. Funktioniert auch wunderbar. Ich wollte nur mal wissen ob ihr eventuell Vorschläge habt wie man das optimieren kann, ob es mit der Funktionsweise Probleme geben kann an irgendeiner Stelle und ob es bessere Wege gibt so etwas zu realisieren.
Danke im voraus.
ich habe mir eine Klasse geschrieben die es mir erlauben auf meine Datenbanken zuzugreifen und Sachen auszulesen, zu verändern und zu löschen. Funktioniert auch wunderbar. Ich wollte nur mal wissen ob ihr eventuell Vorschläge habt wie man das optimieren kann, ob es mit der Funktionsweise Probleme geben kann an irgendeiner Stelle und ob es bessere Wege gibt so etwas zu realisieren.
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class DBConn {
private Connection conn;
private Statement state;
private String query;
private ArrayList<ArrayList> listGesamt = new ArrayList<ArrayList>();
private ArrayList<String> list = new ArrayList<String>();
public DBConn() {
}
public void Connect(String link, String user, String pswd) {
try {
conn = DriverManager.getConnection(link , user, pswd);
conn.setAutoCommit(false);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.getMessage() + "\n" + e.getNextException(), "Fehler", 1);
}
}
public ArrayList<ArrayList> lesen(String query) {
listGesamt = new ArrayList<ArrayList>();
list = new ArrayList<String>();
try {
ResultSet rs = null;
this.query = query;
rs = getObjekte(this.query);
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= columnCount; i++) {
list.add(rs.getString(i));
}
listGesamt.add(list);
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.getMessage() + "\n" + e.getNextException(), "Fehler", 1);
}
return listGesamt;
}
public void schreiben(String query) {
setObjekte(query);
}
public void loeschen(String query) {
setObjekte(query);
}
private ResultSet getObjekte(String query) {
ResultSet rset = null;
try {
state = conn.createStatement();
} catch (SQLException se) {
//fehlerausgabe
System.out.println("SQLFehler bei Statement-Erstellung");
se.printStackTrace();
System.exit(12);
} catch (NullPointerException e) {
System.out.println("Fehler! Statement ist leer!");
e.printStackTrace();
System.exit(12);
}
try {
rset = state.executeQuery(query);
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}
return rset;
}
private void setObjekte(String query) {
try {
state = conn.createStatement();
} catch (SQLException se) {
//fehlerausgabe
System.out.println("SQLFehler bei Statement-Erstellung");
se.printStackTrace();
System.exit(12);
} catch (NullPointerException e) {
System.out.println("Fehler! Statement ist leer!");
e.printStackTrace();
System.exit(12);
}
try {
state.executeUpdate(query);
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeConnection() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Danke im voraus.