Chciałbym zrealizować formularze dla danych zapisanych w bazie MySQL w Javie.
Dla każdej z tabel napisałem publiczną klasę która odwzorowuje strukturę tej tabeli i innych z modelu relacyjnego np.
public class KierowcaTbl {
int IDK;
String Imie;
String Imie2;
String Nazwisko;
String Ulica;
String Numer;
// pozostałe pola
KierowcaTbl(){
IDK=0;
Imie="";
Imie2="";
Nazwisko="";
Ulica="";
Numer="";
//pozostałe pola
}
}
Formularz pobiera dane z tabel przez funkcję zwracającą obiekt właściwej klasy np.
public static KierowcaTbl selKierowca(int numer) {
KierowcaTbl k = new KierowcaTbl();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) { }
Connection conn = null;
try {
conn = DriverManager.getConnection("" +
"jdbc:mysql://localhost/kierowcy?" + "user=***&password=***");
Statement s = null;
ResultSet rs = null;
try {
String Zapytanie="SELECT * FROM (kierowcy k inner join miasta m on " +
"k.idm=m.idm) inner join panstwa p on p.idp=m.idp LIMIT " + (numer-1) + ", 1";
s = conn.createStatement ();
s.executeQuery (Zapytanie);
rs = s.getResultSet ();
while (rs.next ()){
k.IDK = rs.getInt("IDK");
k.Imie = rs.getString ("Imie");
k.Imie2 = rs.getString("Imie2");
k.Nazwisko = rs.getString ("Nazwisko");
k.Ulica=rs.getString("Ulica");
//pozostałe pola
}
}
finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException sqlEx) { }
rs = null;
}
if (s != null) {
try {
s.close();
} catch (SQLException sqlEx) { }
s = null;
}
}
}
}
}
catch (SQLException ex) {
}
return k;
}
To rozwiązanie działa, ma jednak wadę taką, że w wyniku mam mnóstwo klas, funkcji z których każda łączy się z bazą itp. a później rozłącza się.
Czy ktoś mógłby wypowiedzieć się na temat w jaki bardziej elegancki sposób należy tworzyć formularze do baz danych w Javie. Czy może to coś co napisałem (wątpię...) jest poprawne?