WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

22
WiTa Datenbankanbindu ng: Schnittstellen, Methoden, Attribute

Transcript of WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Page 1: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

WiTa Datenbankanbindung:

Schnittstellen, Methoden, Attribute

Page 2: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Übersicht• Schnittstellen, Methoden und Attribute für–Speichern

–Laden

–Hilfsstrukturen

Page 3: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Speichern

Page 4: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Speichern

• Interfaces– Storeable: get String()

– Createable: create(), remove()– Updateable: update()

• Hilfsmethoden (static)– executeCommand– executeCreate

CreateUpdateRemove

Page 5: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Interface: Storeable

• public String getCreateString()

“INSERT INTO [Tabelle] ([Tab.-Spalten])VALUES ([Attribute])”

• public String getUpdateString()

“UPDATE [Tabelle] SET [Spalte = Attribut] WHERE [Prim.-Key = Objekt-ID]”

• public String getRemoveString()

“DELETE FROM [Tabelle] WHERE [Prim.-Key = Objekt-ID]”

Page 6: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Interface: Createable

• create():public void create() throws SQLException, ValidationException {

this.validate();

executeCreate(this, this.getLogger());

}

• remove():public void remove() throws SQLException {

executeCommand(this.getRemoveString(), this.getLogger());

}

Page 7: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Interface: Updateable

• update():public void update() throws SQLException, ValidationException {

if(this.getId() == 0){

String[] error = {this+[ERROR-MSG]};

throw new ValidationException(error);

}

this.validate();

String[] strUpdate = {this.getUpdateString()};

executeUpdate(strUpdate, this.getLogger());

}

Page 8: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsmethode: executeCommand(3 Varianten)

1. public static void executeCommand(String sqlString,Logger logger

)

2. public static void executeCommand(String[] sqlString,Logger logger

)

Page 9: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsmethode: executeCommand(3. Variante)

3. public static void executeCommand(String sqlString,Logger logger,Connection connect,boolean commit

)

Page 10: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsmethode: executeCreate(2 Varianten)

1. public static int executeCreate(Storeable ObjectToStore,Logger logger

)

2. public static int executeCreate(Storeable ObjectToStore,Logger logger,Connection connect,boolean commit

)

Page 11: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Laden

Page 12: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Laden

• Interfaces– Restoreable: restore(ResultSet)

• Hilfsmethoden (static)– genericFind– calculateQuery– getMemberFromDatabase

Page 13: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Interface: Restoreable

• restore(ResultSet): (in BankDetail)

public void restore(ResultSet source) throws SQLException {

this.setId (source.getInt ("BankDetail_id") ); this.setBank (source.getString ("bank") ); this.setBankCode (source.getInt ("bankCode") ); this.setAccountNumber( source.getLong("accountNumber") ); this.ownerId = source.getInt("owner"); this.setReasonForPayment (source.getString("reasonForPayment") ); log.info(this+"restore("+ source.getClass().getName() +"): "

+"restoring was successful");}

Page 14: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsmethode: genericFind

public static Collection genericFind(String queryString,String restoreableClassName,Logger logger

)

Beispiel:genericFind(

"SELECT * FROM Address WHERE street LIKE "+ getQuery(street), "de.uni_marburg.wita.orga.Address", log

);

Page 15: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsmethode: calculateQuery

public static Object calculateQuery(String sqlQuery,boolean longOrDouble,Logger logger

)

Beispiel:Long nCounter = (Long) calculateQuery(

"SELECT count(*) FROM … " …, true, log

);

Page 16: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsmethode: getMemberFromDatabase

public static Object getMemberFromDatabase(String sqlQuery,String restoreableObjectName,Logger logger

)

Beispiel:getMemberFromDatabase(

"SELECT * FROM Address WHERE id = "+ addressId, "de.uni_marburg.wita.orga.Address", log

);

Page 17: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsstrukturen

Page 18: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsstrukturen

• Interfaces– SimpleIntId: Id([int])

• Hilfsmethoden (static)– Connection getConnection– String makeStringFuzzy– String getCompString– String getQuery– String[] makeSQLString

getset

Page 19: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsmethode: getQuery

public static String getQuery( )

Beispiele:(String) test (String) ‘test‘(Date) [DATE] (String) ‘yyyy-MM-dd HH:mm:ss‘(boolean) true (String) 1(boolean) false (String) 2

StringDate boolean

Page 20: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsmethode: makeSQLString

String makeSQLString( String[] fieldList, String prefix,

String separator)

Beispiel: fieldList = {“eins“,“zwei“,“drei“}

prefix = “Obj.“

separator = “; “

“Obj.eins; Obj.zwei; Obj.drei“

Parameter:

Rückgabe:

Page 21: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsstrukturen

• Hilfsattribute

– final static transient String[] sqlNames

Beispiel: (in BankDetail)private final static transient String[] sqlNames = {

"BankDetail_id“ , "bank" , "bankCode“ , "accountNumber" , "owner“ , "reasonForPayment"

};

privatepublic

Page 22: WiTa Datenbankanbindung: Schnittstellen, Methoden, Attribute.

Hilfsstrukturen

• Hilfsattribute

– private transient int

[Attribut-Name]Id

Beispiel: (in BankDetail)

private Person owner;private transient int ownerId;

...