SQLJ – SQL dins de Java
SQLJ és una extensió del llenguatge Java per permetre executar-hi SQL dinàmic.
Entre altres coses permet
- Interactuar fàcilment amb les variables i atributs del Java sense haver de fer l’enllaç amb l’espai de memòria SQL explícitament.
- Permet declarar iteradors i interactuar amb el FETCH
Per desgràcia molts IDE no reconeixen el llenguatge SQLJ encara. Tot i que sí que hi ha mòdul SQLJ per MAVEN i com a mínim es pot compilar bé.
public Address getEmployeeAddress(int empno)
throws SQLException
{
Address addr;
#sql { SELECT office_addr INTO :addr FROM employees
WHERE empnumber = :empno };
// NOTA implícitament executa
// addr= (Address) rs.getORAData(1, Address.getORADataFactory()));
return addr;
}
public Address updateAddress(Address addr)
throws SQLException
{
#sql addr = { VALUES(UPDATE_ADDRESS(:addr)) };
return addr;
}
#sql private static iterator EmployeeIterator(String, String, BigDecimal); ... EmployeeIterator iter; #sql [ctx] iter = { SELECT LASTNAME, FIRSTNAME SALARY FROM DSN8710.EMP WHERE SALARY BETWEEN :min AND :max }; do { #sql { FETCH :iter INTO :lastname, :firstname, :salary }; } while (!iter.endFetch()); iter.close();
Més informació:
Existeixen altres solucions per a Java, sense pre-compilador però que aleshores involucren haver de fer l’enllaç entre variables Java i SQL manualment: