// również stosowanie traksancji oraz oznaczanie sesji jako readonly jeśli nie planujemy zmian są dodatkowymi zabezpieczeniami przed skutkami SQL injection
c.setAutoCommit(false);
c.setReadOnly(true);
finalStringsql="SELECT * FROM employees WHERE job_id = ? ORDER BY employee_id";
c.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);// cudze zmiany widzimy dopiero wtedy, gdy zostaną zakomitowane
// c.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); // nie widzimy cudzych zmian w czasie traksakcji, kolejne selecty zwracają te same wartości (o ile sami nie edytujemy)
// c.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); // nasze zmiany nie zamażą cudzych zmian - ale możemy dostać wyjątek gdy próbujemy zmeiniać rekordy
// c.setReadOnly(true); // tutaj nie ma sensu, ale może mieć sens:
JOptionPane.showMessageDialog(null,"Połączyliśmy się i ustawiliśmy transakcję...");
StringkogoSzukac=JOptionPane.showInputDialog("Podaj kod stanowiska:");
doublesrednia1=sredniaPensja(c,kogoSzukac);
JOptionPane.showMessageDialog(null,"Średnia przed zmianą: "+srednia1);
/* WebRowSet pozwala wyeksportować dane do formatu XML
*/
publicclassP24_WebRowSet{
publicstaticvoidmain(String[]args){
try{
System.out.println("Start");
RowSetFactoryrsf=RowSetProvider.newFactory();
WebRowSetrowSet=rsf.createWebRowSet();
rowSet.setUrl(Ustawienia.URL);
rowSet.setUsername(Ustawienia.USER);
rowSet.setPassword(Ustawienia.PASSWD);
Stringsql="SELECT * FROM employees LEFT JOIN jobs USING(job_id) LEFT JOIN departments USING (department_id) LEFT JOIN locations USING (location_id) LEFT JOIN countries USING (country_id) ORDER BY employee_id";