Hallo,
ich habe vor mein derzeitiges Webprojekt etwas zu vereinfachen. Dafür habe ich mir überlegt, mach ich doch für alle Anfragen an die Datenbank eine Klasse die ich dann nur noch mit Parameter füllen muss.
Leider scheitere ich an einem Punkt:
so sieht derzeit meine Klasse aus
bei Nummer 3 hänge ich fest!
Zur Erläuterung:
So wie mache ich das nun wenn ich folgendes ohne Klasse mache?
Bitte um Hilfe
Danke schon mal fürs lesen
ich habe vor mein derzeitiges Webprojekt etwas zu vereinfachen. Dafür habe ich mir überlegt, mach ich doch für alle Anfragen an die Datenbank eine Klasse die ich dann nur noch mit Parameter füllen muss.
Leider scheitere ich an einem Punkt:
so sieht derzeit meine Klasse aus
Java:
package de.pcpowerplay.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
*
* @author purzel
*/
public class query {
/**
* Datenbank
*/
final String db_driver = "com.mysql.jdbc.Driver";
final String db_url = "jdbc:mysql://xxx.xxx.xxx.xxx/pcpowerplay";
final String db_username = "yyyyy";
final String db_password = "zzzzz";
ResultSet rs;
public query(String query, String... prepStmt) {
try{
Class.forName(db_driver);
try{
Connection db = DriverManager.getConnection(db_url, db_username, db_password);
String selectStatement = query; // SELECT, Abfrage aus DB {1}
PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
for(int i = 0; i < prepStmt.length; i++) {
select_prepStmt.setString(i+1, prepStmt[i]); // Parameter die in 1 mit ? gekennzeichnet sind füllen {2}
}
rs = select_prepStmt.executeQuery();
while(rs.next()) {
//beliebige Arrays füllen, unbekannt!! {3}
}
rs.close();
db.close();
} catch (Exception db_error) {
System.out.println(db_error);
}
} catch(Exception db_driver_error) {
System.out.println(db_driver_error);
}
}
}
bei Nummer 3 hänge ich fest!
Zur Erläuterung:
- Select Abfrage aus Datenbank
- ? - Zeichen mit Werten belegen
- Array füllen und später wieder an aufrufende Klasse übergeben
So wie mache ich das nun wenn ich folgendes ohne Klasse mache?
Java:
suche_spalten[] suche = new suche_spalten[15];
try{
Class.forName(db_driver);
try{
Connection db = DriverManager.getConnection(db_url, db_username, db_password);
if(search_item.equals("1")) {
String selectStatement = "SELECT id, titel, inhalt FROM news WHERE inhalt LIKE ?";
PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
select_prepStmt.setString(1, "%" + search_value + "%");
rs = select_prepStmt.executeQuery();
while(rs.next()) {
suche[i] = new suche_spalten(rs.getInt("id"), rs.getString("titel"), rs.getString("inhalt"));
i++;
}
} else if(search_item.equals("2")) {
String selectStatement = "SELECT id, username FROM users WHERE username LIKE ?";
PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
select_prepStmt.setString(1, "%" + search_value + "%");
rs = select_prepStmt.executeQuery();
while(rs.next()) {
suche[i] = new suche_spalten(rs.getInt("id"), rs.getString("username"));
i++;
}
}
rs.close();
db.close();
} catch (Exception db_error) {
System.out.println(db_error);
}
} catch(Exception db_driver_error) {
System.out.println(db_driver_error);
}
return suche;
Bitte um Hilfe
Danke schon mal fürs lesen