Cero, sobre hibernado
Hibernate significa hibernación, que se refiere a la hibernación de animales, pero el hibernado discutido en este artículo no tiene nada que ver con la hibernación, pero es miembro del marco SSH2 que se analizará a continuación. Hibernate es un proyecto de código abierto. Es un marco de modelos relacionales de objetos y tiene una encapsulación muy liviana de JDBC. Los programadores pueden usar el pensamiento de programación de objetos para desarrollar durante el desarrollo.
Descargar dirección: http://hibernate.org/orm/downloads/
Nota: La diferencia entre peso ligero y peso pesado. El paquete de marco liviano es más pequeño y simple de usar, y es fácil de probar y tiene una alta eficiencia de desarrollo. El paquete de marco de peso pesado es más grande, y el proceso comercial de los envases internos es más complicado y difícil de probar, como los puntales.
Modelo relacional de objetos:
Hibernate implementa el mapeo de modelos relacionales de objetos. Al programar, los programadores pueden usar directamente el modelo de objeto para operar la base de datos. Ligera encapsula JDBC y también encapsula las declaraciones SQL para operaciones de bases de datos, que son fáciles de usar. Aunque tiene muchas ventajas, será difícil sintonizar el uso de declaraciones con características de la base de datos, como procedimientos almacenados, etc.
Pros y contras de Hibernate:
(1) Ventajas
A. mejorar la productividad;
B. hacer que el desarrollo sea más objetivado (desajuste de impedancia);
C. portabilidad;
D. No hay invasividad y apoya la transparencia y la persistencia.
(2) Desventajas
A. Las declaraciones que utilizan características de la base de datos serán difíciles de ajustar;
B. Hay problemas con las actualizaciones de datos a gran escala;
C. Hay una gran cantidad de funciones de consulta estadística en el sistema.
2. Ejemplo hibernado
El artículo anterior proporciona algunas interpretaciones preliminares de Hibernate. Con la teoría, ciertamente hay más práctica. No comprende su conveniencia sin usar Hibernate. Esto es como una persona a la que le gusta beber sabores por primera vez. Solo después de usarlo, puede entenderlo más profundamente.
El siguiente ejemplo usa la base de datos MySQL. Una base de datos llamada Hibernate_First se crea en MySQL. Se crea una tabla de usuario a través del archivo de mapeo Hibernate utilizando el método de programación de objetos y agregue información a la tabla de usuarios.
Pasos específicos:
(1) crear una aplicación Java normal;
(2) Agregue el paquete jar de Hibernate. Al agregar el paquete JAR, debe introducir paquetes Hibernate.jar, de terceros referenciados por los paquetes de Hibernate y JAR conectados a Hibernate y MySQL.
(3) Agregue el archivo de configuración de conexión de la base de datos hibernate.cfg.xml.
<? xml versión = "1.0" encoding = "utf-8"?> < <SessionFactory> <Property name = "Hibernate.Connection.Driver_Class"> com.mysql.jdbc.driver </Property> <Property Name = "Hibernate.Connection.url"> jdbc: mysql: // localhost: 3306/hiBernate_first </propetity> <propine name = "HiBERNATE.Connection.Connection.ConnectionAname" <Property name = "Hibernate.Connection.Password"> AB12 </Property> <!-Dialect: Dialect, la API subyacente encapsulada, similar a Runtime, convierte la base de datos en el lenguaje correspondiente en la configuración-> <Nombre de propiedad = "Hibernate.dialect"> ORG.HiberNate.dialect.mysqldialect </Propiedad> <! -> <Property name = "hibernate.show_sql"> true </property> <propiedad name = "hibernate.format_sql"> true </property> <mapping resource = "com/hibernate/user.hbm.xml"/> </sessionfactory> </hibernate-Configuration>
(4) Cree el nombre de la clase de entidad como usuario.java
paquete com.Hibernate; import java.util.date; Usuario de clase pública {ID de cadena privada; public String getId () {return id; } public void setid (ID de cadena) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getPassword () {return Password; } public void setPassword (String Password) {this.password = contraseña; } fecha pública getCreateTime () {return CreateTime; } public void setCreateTime (date CreateTime) {this.CreateTime = CreateTime; } fecha pública getExpireTime () {return ExtImetime; } public void setExpireTime (fecha de caducidad) {this.expireTime = expireTime; } nombre de cadena privada; contraseña de cadena privada; Fecha privada CreateTime; Fecha privada Explicación; } (5) Cree el archivo de asignación user.hbm.xml de la clase de entidad de usuario, complete la asignación de la clase de entidad y agregue el archivo al archivo hibernate.cfg.xml.
<? xml versión = "1.0"?> < -> <hibernate-mapping> <class name = "com.hibernate.user"> <id name = "id"> <generador/> </id> <propiedad name = "name"/> <propiedad name = "contraseña"/> <propiedad name = "createTime"/> <Property name = "expireMime"/> </scalase> </bercernate-mapping>
(6) Escriba exportdb.java y convierta el archivo de asignación en el DDL correspondiente.
paquete com.Hibernate; importar org.hibernate.cfg.configuration; importar org.hibernate.tool.hbm2ddl.schemaExport; Public Class ExportDB {public static void main (String [] args) {// primero declare para obtener el archivo de configuración // lea predeterminado leer hibernate.cfg.xml Archivo Configuración cfg = nueva configuración (). Configure (); // Exportar el archivo de lectura XML a DDL SchemaExport Export = new SchemaExport (CFG); export.create (verdadero, verdadero); }} Ejecute la clase ExportDB para completar la creación de la tabla de la base de datos. La vista después de ver la operación específica en CMD es la siguiente:
El ejemplo anterior solo completa el funcionamiento de conectarse a la base de datos y crear tablas en la base de datos. Después de crear la tabla, debe agregar datos a la tabla, crear un cliente de clase de cliente y agregar nueva información de usuario a la tabla de usuario. El código específico es el siguiente:
paquete com.Hibernate; import java.util.date; importar org.hibernate.session; importar org.hibernate.sessionFactory; importar org.hibernate.cfg.configuration; Cliente de clase pública {public static void main (string [] args) {// lea hibernate.cfg.xml Configuración del archivo cfg = nueva configuración (). Configure (); // Crear sessionFactory, que es equivalente a un espejo de base de datos. Debido a que SessionFactory es un espejo, es mejor crearlo una vez/generalmente seguro de hilo. SessionFactory factory = cfg.BuildSessionFactory (); // Sesión de sesión de sesión obtenida = NULL; intente {session = factory.opensession (); // Abrir transacción session.BeginTransaction (); Usuario user = nuevo usuario (); user.setName ("Zhang San"); user.setPassword ("123"); user.setCreateTime (nueva fecha ()); // Guardar objeto de usuario session.save (usuario); // Commit Transaction Session.GetTransaction (). Commit (); } Catch (Exception e) {E.PrintStackTrace (); // Imprima el mensaje de error // Rollback Transaction Session.getTransaction (). Rollback (); } Finalmente {if (session! = null) {if (session.isopen ()) {// session session.close (); }}}}}}}}} Ver información agregada en MySQL como se muestra en la siguiente figura:
La información de la operación anterior se ha escrito en la base de datos. Después de guardar los datos en la base de datos, las filas correspondientes se generan en la base de datos. Sin embargo, aún no se ha guardado. En cambio, hay filas de datos correspondientes en la base de datos. Los datos se envían a la base de datos después de que se complete el envío de transacciones utilizando la sesión.