Sie sind auf Seite 1von 8

Hibernate

CRUD simple Uso de Java, Hibernate


y MySQL
En este tutorial, vamos a crear una sencilla CRUD (Crear Leer Actualizar Borrar) Aplicacin del
usuario Management Console utilizando Java, Hibernate y MySQL.
Para este tutorial, necesitaremos las siguientes herramientas: (La versin anterior o posterior debe
tambin funciona).
1. Eclipse IDE para Java EE Desarrolladores (Indigo - Ver. 3.7)
2. MySQL Community Server y MySQL Workbench (GUI de la herramienta)
3. MySQL Connector para Java
4. Hibernate ORM
En primer lugar, vamos a crear la base de datos y la tabla de usuario utilizando las siguientes
secuencias de comandos SQL. Copiar y ejecutar este script en el MySQL Workbench (GUI de la
herramienta) -> Editor de SQL:
crear UserDB base de datos;
utilizar UserDB;
conceda a todos en UserDB * a 'admin' @ 'localhost' identifica
mediante "prueba".;
CREAR TABLA UserDB.`users` (
`userid` int (11) NOT NULL AUTO_INCREMENT,
`firstname` NULL varchar (45) DEFAULT,
`varchar lastname` (45) DEFAULT NULL,
`dob` NULL fecha predeterminada,
`email` NULL varchar (100) DEFAULT,
PRIMARY KEY ( `userid`)
) ENGINE = InnoDB AUTO_INCREMENT = 9 DEFAULT charset = UTF-8
Ir a eclipsar y crear un nuevo proyecto. Seleccione Archivo-> Nuevo-> Proyecto de Java. Enter
"SimpleJava hibernacin", como el nombre del proyecto. Acepte todo el valor predeterminado.Haga
clic en Finalizar.
Consulte en este directorio del proyecto en caso de que se pierda algo en el camino

Despus de crear el proyecto, tenemos que aadir conector MySQL archivo .jar a nuestra
trayectoria de la estructura del proyecto. Para ello, haga clic derecho en nuestro proyecto recin
creado "SimpleJavaHibernate" y seleccione Propiedades para abrir la ventana Propiedades.
Seleccione Java Build Path en la vista de rbol a la izquierda para abrir la derecha vista lateral en
detalle. Haga clic en Aadir JAR externos .. botn para abrir dilogo del navegador de archivos y
el punto al conector de MySQL .jar archivo que ha descargado anteriormente.
Por otra parte, tenemos que aadir la biblioteca Hibernate a nuestro proyecto. Haga clic derecho de
nuevo el proyecto y seleccione Propiedades -> Java Build Path. Esta vez, haga clic enAgregar
biblioteca. Seleccionar biblioteca de usuario de la lista de seleccin. Haga clic enBiblioteca de
usuario. A continuacin, haga clic en Nuevo. Enter "hibernacin", como el nombre de la
biblioteca. Ok. Haga clic en nuestra biblioteca de usuario recin creado y haga clic enAgregar
archivo JAR. Seleccione todo el archivo .jar, tanto en la carpeta proporcionada ynecesaria que
se encuentra dentro de esta estructura de directorios [su hibernacin descarga carpeta] ->
hibernacin-search-4.1.0.CR3-dist-> hibernacin-search-4.1.0.CR3-> dist-> lib
Verificar su trayectoria de la estructura para que coincida con la configuracin en la imagen
siguiente:

Esta es toda la configuracin que tenemos que hacer y ahora vamos a llegar al cdigo.
Cree cuatro paquetes en la carpeta src.

com.daniel: contiene el mtodo principal como punto de entrada para nuestra aplicacin
de consola
com.daniel.dao: contiene la lgica para el funcionamiento de bases de datos
com.daniel.model: contiene el POJO (Plain Old Java Object). Cada clase en este paquete
representa la tabla de base de datos. Para este tutorial, sin embargo, slo tenemos una mesa.
com.daniel.util: contiene la clase de base de datos para iniciar la conexin
A continuacin, crear una nueva clase Java. en la carpeta com.daniel.model. El nombre
de"User.java" e insertar estos cdigos siguientes. Cada una de las variables en esta clase
representa el campo en la tabla de usuarios en nuestra base de datos.

com.daniel.model paquete;
java.util.Date importacin;
Usuario public class {
ID de usuario int privado;
firstName cadena privada;
lastName cadena privada;
Fecha dob privada;
Cadena de correo electrnico privada;
public int GetUserID () {
ID de usuario de regreso;
}
pblica SetUserID void (int id de usuario) {
este .userid = ID de usuario;
}
Cadena getFirstName pblica () {
volver firstName;
}
pblica setFirstName vaco (String firstName) {
este .firstName = firstName;
}
Cadena getLastName pblica () {
volver lastName;
}
pblica setLastName vaco (String lastName) {
este .lastName = lastName;
}
Fecha getDob pblica () {
dob regresar;
}
pblica setDob vaco (Fecha DOB) {
este .dob = fecha de nacimiento;
}
Cadena getEmail pblica () {
correo electrnico de retorno;
}
pblica setEmail vaco (correo electrnico String) {
este .email = correo electrnico;
}
@Anular
public String toString () {

retorno "de usuario [ID de usuario =" + +


ID de usuario ", firstName =" + firstName
+ ", LastName =" + Apellido + ",
fecha de nacimiento =" + + fecha de nacimiento ", email ="
+ Correo + "]";
}
}
Crear una nueva clase en el paquete com.daniel.util y el nombre HibernateUtil.java. Esta clase
leer la configuracin en nuestro fichero hibernate.cfg.xml que se ocupa de la conexin de base
de datos a nuestro servidor MySQL.
com.daniel.util paquete;
org.hibernate.SessionFactory importacin;
org.hibernate.cfg.Configuration importacin;
public class {HibernateUtil
SessionFactory private static final sessionFactory =
buildSessionFactory ();
esttica privada SessionFactory buildSessionFactory () {
try {
// Crear la SessionFactory de hibernate.cfg.xml
volver nueva configuracin () configurar ()
buildSessionFactory ()..;
} Catch (Throwable ex) {
// Asegrese de que se conecte la excepcin, ya que puede
tragarse
System.err.println ( "Error en la creacin SessionFactory
inicial." + Ex);
arrojar nueva ExceptionInInitializerError (ex);
}
}
public static SessionFactory getSessionFactory () {
volver sessionFactory;
}
}
Crear el archivo de configuracin hibernate.cfg.xml mencionada directamente en la
carpetaSimpleJavaHibernate. Ponga la siguiente informacin en el interior.
<? Xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE PBLICO-configuracin de hibernacin
"- // Hibernate / Hibernate configuracin DTD 3.0 // EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<Hibernate-configuration>
<Session-factory>
<! - Configuracin de la conexin de base de datos ->
<Property name = "connection.driver_class">
com.mysql.jdbc.Driver </ property>
<Property name = "connection.url"> jdbc: mysql: // localhost /
UserDB </ property>
<Property name = "connection.username"> admin </ property>
<Property name = "connection.password"> prueba </ property>
<! - De conexiones JDBC (utilizar el built-in) ->
<Property name = "connection.pool_size"> 1 </ property>
<! - Dialecto SQL ->

<Property name = "dialecto"> org.hibernate.dialect.MySQLDialect


</ property>
<! - Habilitar la administracin de contexto de sesin
automtico de Hibernate ->
<Property name = "current_session_context_class"> hilo </
property>
<! - Desactivar la cach de segundo nivel ->
<Property name = "cache.provider_class">
org.hibernate.cache.NoCacheProvider
</ property>
<! - Echo toda SQL ejecutada por la salida estndar ->
<Property name = "show_sql"> true </ property>
<! - Drop y vuelva a crear el esquema de base en el inicio ->
<Property name = "hbm2ddl.auto"> actualizacin </ property>
<! - Asignacin de archivos ->
<Mapeo de recursos = "user.hbm.xml" />
</ Session-factory>
</ Hibernate-configuracin>
Observe que en el interior del archivo, no es un recurso de informacin sobre la cartografa que
apuntan a user.hbm.xml archivo. Por lo tanto, crear un archivo .xml directamente bajo la carpeta
SimpleJavaHibernate para mapear nuestra variables con campos en la base de datos de objetos
(Plain Old Java POJO). Nombre que user.hbm.xml y escribir el siguiente cdigo dentro de
<? xml version = "1.0"?>
<! DOCTYPE PBLICA hibernacin de mapeo
"- // Hibernate / Hibernate Mapping DTD 3.0 // EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<Hibernate-mapping>
<Class name = "" com.daniel.model.User tabla = "usuarios">
<nombre id = "userid" type = columna "int" = "userid">
<clase generador = "incremento" />
</ Id>
<property name = "nombre">
<nombre de columna = "nombre" />
</ Property>
<property name = "Apellido">
<nombre de columna = "apellido" />
</ Property>
<property name = "fecha de nacimiento">
<column name = "fecha de nacimiento" />
</ Property>
<property name = "email">
<nombre de columna = "email" />
</ Property>
</ Class>
</ Mapeo de Hibernate->
A continuacin, crear una nueva clase en el
paquete com.daniel.dao, nombrarlo UserDao.java.Dao es sinnimo de acceso a datos de
objetos. Contiene la lgica de funcionamiento de bases de datos.
com.daniel.dao paquete;

java.util.ArrayList importacin;
java.util.List importacin;
org.hibernate.Query importacin;
org.hibernate.Session importacin;
org.hibernate.Transaction importacin;
com.daniel.model.User importacin;
com.daniel.util.HibernateUtil importacin;
UserDao public class {
public void addUser (usuario del usuario) {
Transaccin RRT = null;
Session session = HibernateUtil.getSessionFactory () openSession
(.);

try {
RRT = session.beginTransaction ();
session.save (usuario);
session.getTransaction () commit ().;
} Catch (RuntimeException e) {
si (RRT! = null) {
trns.rollback ();
}
e.printStackTrace ();
} Finally {
session.flush ();
session.close ();
}
}

(.);

pblica deleteUser void (int id de usuario) {


Transaccin RRT = null;
Session session = HibernateUtil.getSessionFactory () openSession

try {
RRT = session.beginTransaction ();
(. De usuario de clase, new Integer (ID de usuario))
user = Usuario (User) Session.load;
Session.delete (usuario);
session.getTransaction () commit ().;
} Catch (RuntimeException e) {
si (RRT! = null) {
trns.rollback ();
}
e.printStackTrace ();
} Finally {
session.flush ();
session.close ();
}
}
public void updateUser (usuario del usuario) {
Transaccin RRT = null;
Session session = HibernateUtil.getSessionFactory () openSession
(.);

try {

(.);

RRT = session.beginTransaction ();


session.update (usuario);
session.getTransaction () commit ().;
} Catch (RuntimeException e) {
si (RRT! = null) {
trns.rollback ();
}
e.printStackTrace ();
} Finally {
session.flush ();
session.close ();
}

Lista pblica de usuario> <getAllUsers () {


Lista <usuario> usuarios = new ArrayList <usuario> ();
Transaccin RRT = null;
Session session = HibernateUtil.getSessionFactory () openSession
try {
RRT = session.beginTransaction ();
usuarios = session.createQuery ( "de usuario") .list ();
} Catch (RuntimeException e) {
e.printStackTrace ();
} Finally {
session.flush ();
session.close ();
}
usuarios de retorno;
}
getUserById pblica (int id de usuario) El usuario {
User user = null;
Transaccin RRT = null;
Session session = HibernateUtil.getSessionFactory () openSession

(.);

try {
RRT = session.beginTransaction ();
QueryString cadena = "de usuario donde id =: id";
consulta consulta = session.createQuery (queryString);
query.setInteger ( "id", ID de usuario);
user = (Usuario) query.uniqueResult ();
} Catch (RuntimeException e) {
e.printStackTrace ();
} Finally {
session.flush ();
session.close ();
}
volver usuario;

}
}
Por ltimo, crear nuestra clase principal de la aplicacin dentro del paquete com.daniel y el
nombre App.java
com.daniel paquete;
java.sql.SQLException importacin;
java.text.ParseException importacin;

java.text.SimpleDateFormat importacin;
java.util.Date importacin;
com.daniel.dao.UserDao importacin;
com.daniel.model.User importacin;
com.daniel.util.DbUtil importacin;
public class {App
principales argumentos (String []) {public static void
UserDao DAO = new UserDao ();
// Aadir nuevo usuario
User = usuario nuevo usuario ();
user.setFirstName ( "Daniel");
user.setLastName ( "NikoJdbc");
try {
Fecha dob = new SimpleDateFormat
( "aaaa-MM-dd") .parse ( "02/01/1986");
user.setDob (DOB);
} Catch (ParseException e) {
e.printStackTrace ();
}
user.setEmail ( "daniel@example.com");
dao.addUser (usuario);
//
// // Usuario de actualizacin
user.setEmail ( "daniel@updatedJdbc.com");
user.setUserid (1);
dao.updateUser (usuario);
// Borrar usuario
//dao.deleteUser(2);
// Obtener todos los usuarios
para (iter del usuario: dao.getAllUsers ()) {
. Sistema cabo .println (ITER);
}
// Obtener usuario por ID
. Sistema cabo .println (dao.getUserById (8));
try {
DbUtil.getConnection () close ().;
} Catch (SQLException e) {
e.printStackTrace ();
}
}
}
Eso es. Ejecutar el proyecto de Eclipse y ver la salida de la ventana de la consola

Das könnte Ihnen auch gefallen