stringtranslate.com

Persistir (herramienta Java)

Persist es una herramienta ORM / DAO basada en Java . Proporciona solo la cantidad mínima de funcionalidades necesarias para mapear objetos o mapas desde consultas de bases de datos y parámetros de declaraciones.

Persist funciona en torno a un objeto java.sql.Connection. Esto significa que no se preocupa por los lenguajes de consulta del cliente (usa SQL simple con marcadores de posición, como los usan los objetos PreparedStatement), el manejo de grupos de conexiones, el manejo de transacciones (en su mayor parte), etc. Esto también significa que es muy flexible y se puede integrar con cualquier código que dependa de JDBC (incluido el código que ya usa otra herramienta ORM / DAO ).

Persist no requiere asignaciones explícitas de POJO a tablas de bases de datos. Mientras exista algún tipo de convención de nombres que relacione los nombres de bases de datos con los nombres de POJO , Persist prácticamente no requerirá asignaciones. Sin embargo, se le puede indicar que asigne clases y campos de Java a tablas y columnas de bases de datos mediante anotaciones.

Persist admite varias estrategias de mapeo diferentes:

POJO asignados a tablas

De forma predeterminada, si ninguna anotación especifica que una clase determinada no debe asignarse a una tabla, Persist intentará encontrar una tabla que coincida con esa clase y creará una asignación entre campos y columnas.

// Inserta un nuevo cliente (la clase Cliente se asigna a la tabla cliente automáticamente) persist . insert ( cliente );// Lee un cliente por su clave principal Cliente c = persist . readByPrimaryKey ( Customer . class , 42 );    // Recupera clientes usando una consulta personalizada (tenga en cuenta el uso de varargs) List list = persist . readList ( Customer . class , "select * from customer where id > ?" , 10 );     // Obtener todos los clientes y asignar el ResultSet a un iterador Iterator allCustomersIterator = persist . readIterator ( Customer . class , "select * from customer" );    

POJO no asignados a tablas

Si una clase está anotada con @NoTable, Persist no intentará asignarla a una tabla y la clase solo podrá contener datos producidos por consultas.

@NoTable clase  QueryData { int privado contar ; String privado concatName ; público long getCount ( ) { devolver contar ; } void setCount ( long contar ) { this.contar = contar ; } String público getConcatName ( ) { devolver concatName ; } void setConcatName ( String concatName ) { this.concatName = concatName ; } }                                         QueryData qd1 = persist . read ( QueryData . class , "seleccione 1 como recuento, 'hola' como concat_name de dual" );    

java.util.Mapa

Los mapas se pueden utilizar para almacenar datos de consultas. Persist convertirá los valores devueltos de la consulta a tipos de Java. Las claves de la tabla son los nombres de las columnas devueltas en minúsculas.

// Obtener un cliente mediante una consulta personalizada y devolver el resultado como un mapa Map < String , Object > customerMap = persist . readMap ( " select * from customer where id=?" , 10 );    // Obtener todos los clientes y generar los resultados como instancias de Mapa en una Lista List < Map < String , Object >> customerMapList = persist . readMapList ( " select * from customer" );   // Obtener todos los clientes y asignar el ResultSet a un Iterador que asigna filas a instancias de Map Iterator allCustomersIterator = persist . readMapIterator ( "select * from customer" );   

Tipos primitivos de Java

Si una consulta devuelve una sola columna, Persist puede asignar datos directamente a tipos primitivos (ya sean valores individuales o listas):

// Devuelve el nombre del cliente como cadena String name = persist . read ( String . class , "seleccione el nombre del cliente donde id=?" , 55 );     // Obtener todos los ID de clientes como una lista de números enteros List < Integer > ids = persist . readList ( Integer . class , "select id from customer" );    

Consultas personalizadas sin retorno de datos

Se pueden ejecutar fácilmente consultas arbitrarias que no devuelven datos.

// Ejecutar SQL arbitrario con parámetros persist .executeUpdate ( "eliminar del cliente donde id en (?,?)" , 10 , 20 );  

Véase también

Referencias

Enlaces externos