lunes, 9 de agosto de 2010

Conexion con la Base De Datos

Hibernate nos permite hacer un Mapeador Objeto-Relacional
Posteado por: Consuelo Cordero Urgilés

Si estás trabajando con programación orientada a objetos y bases de datos relacionales, seguramente habrás observado que estos son dos paradigmas diferentes. El modelo relacional trata con relaciones, y conjuntos -- es muy matemático por naturaleza. Sin embargo, el paradigma orientado a objetos trata con objetos, sus atributos y asociaciones de unos con otros. Tan pronto como quieras persistir los objetos utilizando una base de datos relacional observarás que: hay una desaveniencia entre estos dos paradigmas, la también llamada diferencia objeto-relacional. Un mapeador objeto-relacional (u ORM para abreviar) nos ayudará evitar esta diferencia.

Con un buen ORM puedes tomar los objetos Java que usas en tu aplicación y decirle al ORM que los persista:


orm.save(myObject);


Esto generará automáticamente todo el SQL necesario para almacenar el objeto. Un ORM te permite cargar tus objetos igual de fácilmente:


myObject = orm.load(MyObject.class, objectId);


Un buen ORM también aportará un buen lenguaje de consultas:



List myObjects = orm.find( "FROM MyObject object WHERE object.property = 5");



Observa que este es un ejemplo muy simple, y que tus consultas podrían ser más potentes. Podrían expandir múltiples asociaciones, por ejemplo:



List myObjects = orm.find( "FROM Person person WHERE person.marriedTo.address.street LIKE %something%");




Esto probablemente se traducirá a una sentencia SQL que utiliza múltiples uniones, que sería mucho más complicada de escribir. Un ORM también rellenará automáticamente los objetos devueltos con sus datos, e incluso sus asociaciones (si es necesario).




Creación de la consulta en el Editor de consultas HQL


En el IDE se puede construir y probar consultas basadas en el Lenguaje de consulta de Hibernate (HQL) usando el Editor de consultas HQL. A medida que escribes la consulta del editor muestra el equivalente (traducido) de consultas SQL. Al hacer clic en 'HQL consulta "botón Ejecutar en la barra de herramientas, el IDE ejecuta la consulta y muestra los resultados en la parte inferior del editor.

En este ejercicio se utiliza el Editor de HQL para la construcción de simples consultas HQL que recuperar una lista de "detalles sobre la base de los actores se pongan en venta el primer nombre o apellido. Antes de agregar la consulta a la clase que va a utilizar el Editor de consultas HQL para probar que la conexión está funcionando correctamente y que la consulta produce los resultados deseados.



1. Expanda el nodo de origen package>

2. Haga clic en hibernate.cfg.xml y seleccione Ejecutar consulta HQL para abrir el Editor HQL.

3. Pruebe la conexión escribiendo de actor en el Editor de consultas HQL. Haga clic en el botón Ejecutar    consulta HQL ( Run HQL Query button ) En la barra de herramientas.


Adición de la consulta para el formulario

Ahora debe modificar DVDStoreAdmin.java añadir las cadenas de consulta y crear los métodos para construir y activar una consulta que incorpora las variables de entrada. También es necesario modificar el controlador de eventos botón para invocar la consulta correcta y agregar un método para mostrar la resultados de la consulta en la tabla.

1. Abrir DVDStoreAdmin.java  y haga clic en la pestaña Fuente.
2. Añadir las cadenas de consulta siguientes (en negrita) a la clase.

public DVDStoreAdmin() {
initComponents();
}

private static String QUERY_BASED_ON_FIRST_NAME="from Actor a where a.firstName like '";

private static String QUERY_BASED_ON_LAST_NAME="from Actor a where a.lastName like '";
Es posible copiar las preguntas del Editor de consultas HQL fichas en el archivo y luego modificar el código.
3. Agregue los métodos siguientes para crear la consulta sobre la base de la cadena de entrada del usuario.

private void runQueryBasedOnFirstName() {
executeHQLQuery(QUERY_BASED_ON_FIRST_NAME + firstNameTextField.getText() + "%'");
}

private void runQueryBasedOnLastName() {
executeHQLQuery(QUERY_BASED_ON_LAST_NAME + lastNameTextField.getText() + "%'");
}
Los métodos de llamar a un método llamado executeHQLQuery () y crear la consulta mediante la combinación de la cadena de consulta con el usuario ha introducido cadena de búsqueda.
4. Agregue el executeHQLQuery () método.

private void executeHQLQuery(String hql) {
try {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Query q = session.createQuery(hql);
List resultList = q.list();
displayResult(resultList);
session.getTransaction().commit();
}
catch (HibernateException he) {
he.printStackTrace();
}
}

El executeHQLQuery () método llama hibernación para ejecutar la consulta seleccionada. Este método hace uso de la clase de utilidad HibernateUtil.java para obtener la Session de Hibernate.
5.Fijar sus importaciones para añadir declaraciones de importación de las bibliotecas de Hibernate (org.hibernate.Query, org.hibernate.Session) y java.util.List.
6.Crear un botón Consultar controlador de eventos por el cambio a la vista Diseño y haga doble clic en el botón Consultar. El IDE crea el método queryButtonActionPerformed y muestra el método en la vista Código fuente.
7. Modifique el método queryButtonActionPerformed en la vista Código fuente, añadiendo el siguiente código de manera que una consulta se ejecuta cuando el usuario hace clic en el botón.

private void queryButtonActionPerformed(java.awt.event.ActionEvent evt) {
if(!firstNameTextField.getText().trim().equals("")) {
runQueryBasedOnFirstName();
}
else if(!lastNameTextField.getText().trim().equals("")) {
runQueryBasedOnLastName();
}
}
8. Agregue el método siguiente para mostrar los resultados en el JTable.

private void displayResult(List resultList) {
Vector tableHeaders = new Vector();
Vector tableData = new Vector();
tableHeaders.add("ActorId");
tableHeaders.add("FirstName");
tableHeaders.add("LastName");
tableHeaders.add("LastUpdated");
for(Object o : resultList) {
Actor actor = (Actor)o;
Vector oneRow = new Vector();
oneRow.add(actor.getActorId());
oneRow.add(actor.getFirstName());
oneRow.add(actor.getLastName());
oneRow.add(actor.getLastUpdate());
tableData.add(oneRow);
}
resultTable.setModel(new DefaultTableModel(tableData, tableHeaders));
}
9. Fijar sus importaciones para agregar java.util.Vector y guardar los cambios. Después de guardar el formulario que usted puede ejecutar el proyecto. 


FUENTES:


http://www.programacion.com/articulo/persistencia_de_objetos_java:_el_camino_hacia_hibernate_251

http://translate.google.com.ec/translate?hl=es&sl=en&u=http://netbeans.org/kb/docs/java/hibernate-java-se.html&ei=-ENgTJ_aGcOBlAfg2IWaCA&sa=X&oi=translate&ct=result&resnum=1&ved=0CCEQ7gEwAA&prev=/search%3Fq%3Dusing%2Bhibernate%2Bjava%2Bswing%2Bapplication%26hl%3Des%26sa%3DX

No hay comentarios:

Publicar un comentario