El Noguer

Joaquim Perez i Noguer

SQLJ – SQL dins de Java

Filed under: Ciència i tecnologia — Joaquim Perez Noguer at 9:14 am on Dimecres, maig 3, 2017

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:

 



No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>