Zero, sobre Hibernate
O hibernato significa hibernação, que se refere à hibernação dos animais, mas o hibernato discutido neste artigo não tem nada a ver com hibernação, mas é um membro da estrutura do SSH2 a ser discutido a seguir. Hibernate é um projeto de código aberto. É uma estrutura de modelos relacionados a objetos e possui um encapsulamento muito leve do JDBC. Os programadores podem usar o pensamento de programação de objetos para se desenvolver durante o desenvolvimento.
Download Endereço: http://hibernate.org/orm/downloads/
Nota: a diferença entre leve e pesado. O pacote de estrutura leve é menor e simples de usar e é fácil de testar e possui alta eficiência de desenvolvimento. O pacote de estrutura de peso pesado é maior e o processo de negócios de embalagem interno é mais complicado e difícil de testar, como suportes.
Modelo Relacional do Objeto:
Hibernate implementa o mapeamento de modelos de objetos-relacionais. Ao programar, os programadores podem usar diretamente o modelo de objeto para operar o banco de dados. Ele encapsula o JDBC e também encapsula as instruções SQL para operações de banco de dados, que são simples de usar. Embora tenha muitas vantagens, será difícil ajustar o uso de declarações com características do banco de dados, como procedimentos armazenados, etc.
Prós e contras do hibernato:
(1) vantagens
A. Melhorar a produtividade;
B. tornar o desenvolvimento mais objetificado (incompatibilidade de impedância);
C. Portabilidade;
D. Sem invasão e apóia a transparência e a persistência.
(2) Desvantagens
A. declarações usando características do banco de dados serão difíceis de ajustar;
B. Existem problemas com atualizações de dados em larga escala;
C. Há um grande número de funções de consulta estatística no sistema.
2. Exemplo de hibernação
O artigo acima fornece algumas interpretações preliminares do hibernato. Com a teoria, certamente há mais prática. Você não entende sua conveniência sem usar o Hibernate. É como uma pessoa que gosta de beber gosto de Moutai pela primeira vez. Somente depois de usá -lo, você pode entendê -lo mais profundamente.
O exemplo a seguir usa o banco de dados MySQL. Um banco de dados chamado hibernate_first é criado no MySQL. Uma tabela de usuários é criada através do arquivo de mapeamento de hibernato usando o método de programação de objetos e adicione informações à tabela de usuários.
Etapas específicas:
(1) criar um aplicativo Java normal;
(2) Adicione o pacote JAR de Hibernate. Ao adicionar o pacote JAR, você precisa apresentar pacotes Hibernate.Jar, JAR de terceiros referenciados pelo Hibernate e pacotes JAR conectados ao Hibernate e MySQL.
(3) Adicione o arquivo de configuração de conexão do banco de dados hibernate.cfg.xml.
<? xml versão = "1.0" coding = "utf-8"?> <! <Session-Factory> <propriedade name = "hibernate.connection.driver_class"> com.mysql.jdbc.driver </property> <propriedade name = "hibernate.connection.url"> jdbc: mysql: // localhost: 3306/hibernate_first </propriedades> name = "hibernate.connection.username"> root </propriedade> <propriedade name = "hibernate.connection.password"> ab12 </propriedade> <!-dialeto: dialeto, a API subjacente encapsulada, semelhante ao tempo de execução, converte o banco de dados no idioma correspondente na configuração-> propriedade name = "hibernate.dialect"> org.hibernate.dialect.mysqldialect </propriedade> <!-Defina a operação de exibição de dados no banco de dados-> <propriedades name = "hibernate.show_sql"> true </propriedade> <nome da propriedade "" Resource = "com/hibernate/user.hbm.xml"/> </session-factory> </Hibernate-Configuration>
(4) Crie o nome da classe de entidade como usuário.java
pacote com.hibernate; importar java.util.date; Public class Usuário {private String ID; public string getId () {return id; } public void setId (string id) {this.id = id; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public string getPassword () {return senha; } public void setPassword (string senha) {this.password = senha; } public data getCreateTime () {return createTime; } public void setCreateTime (data createTime) {this.createTime = createTime; } public data getExpireTime () {return expireTime; } public void setexpireTime (data expireTime) {this.expiretime = expireTime; } nome de string privado; senha de sequência privada; data privada createTime; data privada expireTime; } (5) Crie o arquivo de mapeamento User.hbm.xml da classe de entidade do usuário, preencha o mapeamento da classe de entidade e adicione o arquivo ao arquivo hibernate.cfg.xml.
<? xml versão = "1.0"?> <! Doctype Hibernate-mapping público "-// Hibernate/hibernate mapeamento dtd 3.0 // pt" "http://hibernate.sourceforge.net/hibernate-mappp-3.0.dtd"> <! -> <Hibernate-mapping> <classe name = "com.hibernate.user"> <id name = "id"> <generator/> </dod> <propriedade name = "name"/> <propriedade name = "senha"/> <name = "createTime"/> name = "expireTime"/> </class> </hibrinate "/>
(6) Escreva exportdb.java e converta o arquivo de mapeamento no DDL correspondente.
pacote com.hibernate; importar org.hibernate.cfg.configuration; importar org.hibernate.tool.hbm2ddl.schemaexport; classe pública exportdb {public static void main (string [] args) {// declare primeiro para obter o arquivo de configuração // lida padrão hibernate.cfg.xml Configuração do arquivo cfg = new Configuration (). Configure (); // Exportar o arquivo xml leia para ddl schemaexport export = new schemaExport (cfg); export.create (true, true); }} Execute a classe ExportDB para concluir a criação da tabela de banco de dados. A visão depois de visualizar a operação específica em CMD é a seguinte:
O exemplo acima conclui apenas a operação de conectar -se ao banco de dados e criar tabelas no banco de dados. Depois de criar a tabela, você precisa adicionar dados à tabela, criar um cliente da classe cliente e adicionar novas informações do usuário à tabela de usuários. O código específico é o seguinte:
pacote com.hibernate; importar java.util.date; importar org.hibernate.session; importar org.Hibernate.SessionFactory; importar org.hibernate.cfg.configuration; classe pública client {public static void main (string [] args) {// leia hibernate.cfg.xml Configuração do arquivo cfg = new Configuration (). Configure (); // Crie SessionFactory, que é equivalente a um espelho de banco de dados. Como a SessionFactory é um espelho, é melhor criá-lo uma vez/geralmente segura. SessionFactory Factory = cfg.buildSessionFactory (); // sessão de sessão de sessão pegada = null; tente {session = factory.opensssion (); // Abra a transação session.BegIntransaction (); Usuário do usuário = novo usuário (); user.setName ("Zhang San"); user.setPassword ("123"); user.setCreateTime (new Date ()); // salvar session.save do objeto do usuário (usuário); // comprometer a transação session.gettransaction (). Commit (); } catch (Exceção e) {e.printStackTrace (); // Mensagem de erro de impressão // Rollback Transaction session.gettransaction (). rollback (); } finalmente {if (session! = null) {if (session.isopen ()) {// feche session session.close (); }}}}}}}}} Veja as informações adicionadas no MySQL, como mostrado na figura a seguir:
As informações da operação acima foram gravadas no banco de dados. Depois de salvar os dados no banco de dados, as linhas correspondentes são geradas no banco de dados. No entanto, ainda não foi salvo. Em vez disso, existem linhas de dados correspondentes no banco de dados. Os dados são enviados ao banco de dados após a conclusão do envio da transação usando a sessão.