深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架 .

转载 2012年03月24日 21:34:59
这篇博客是hibernate学习的第一篇,主要简单介绍hibernate框架,之后简单说一下hibernate的目录结构,最后写一个简单的hibernate实例。通过这三步来简单的认识一下hibernate。

 

废话不多说,步入正题。首先简单介绍一下hibernate框架,它是一种基于JDBC的主流持久化框架,是一个优秀的orm实现;它对JDBC进行了轻量级的封装,大大简化了数据访问层繁杂的重复代码;而且它利用了java反射机制来实现程序的透明性;它的本意是从对象出发而非关系数据库出发,这一点也就是说明它是以面向对象思维解决数据库的操作问题。

 

以上是从概念上说的hibernate,下面来看一下hibernate目录结构:


 


这就是解压出来的hibernate的目录文件,在这里面doc目录为文档,lib目录为所用的库文件,src为hibernate源代码,hibernate3.jar为打包后的字节码文件。另外一些随后博客遇到再介绍。

 

这里要说的学习hibernate框架始终和3个比较重要的文件打交道,即hibernate本身的配置文件hibernate.cfg.xml文件,这个文件用来配置hibernate自身属性,数据库驱动、数据库连接和数据库方言;另外一个是对象关系映射配置文件,如UserInfo.hbm.xml。此文件负责实体对象到关系数据库映射。最后一个就是我们常见的持久化类了,也就是对象现实中的实体。

 

有了上面的基础,我们来一步一步的实现一个hibernate实例。

 

1.      在eclipse中配置hibernate环境:

我们首先建立一个项目,名叫hibernate_first,之后自定义个存放jar包的库,就取名为UserLibrary;导入相关的包,这些包包括相应数据库驱动、hibernate目录下lib文件夹下的jar包,还有hibernate目录下的hibernate3.jar。



2.      导入hibernate.cfg.xml,并且配置数据库连接:

将hibernate目录下的hibernate.cfg.xml文件导入项目的src目录下,之后配置数据库连接信息,我们这个实例选取的是用Mysql作为数据库,所以我们就要在hibernate.cfg.xml下配置如下信息。

 

  1. <!DOCTYPE hibernate-configuration PUBLIC  
  2.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  3.     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  4.   
  5. <hibernate-configuration>  
  6.     <session-factory>  
  7.         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
  8.         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/User</property>  
  9.         <property name="hibernate.connection.username">root</property>  
  10.         <property name="hibernate.connection.password">123</property>  
  11.         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  
  12.   
  13.       
  14.       
  15.     </session-factory>  
  16. </hibernate-configuration>  


3.      建立实体类User.java

  1. import java.util.Date;  
  2.   
  3. public class User {  
  4.   
  5.     private String id;  
  6.       
  7.     private String name;  
  8.       
  9.     private String password;  
  10.       
  11.   
  12.     public String getId() {  
  13.         return id;  
  14.     }  
  15.   
  16.     public void setId(String id) {  
  17.         this.id = id;  
  18.     }  
  19.   
  20.     public String getName() {  
  21.         return name;  
  22.     }  
  23.   
  24.     public void setName(String name) {  
  25.         this.name = name;  
  26.     }  
  27.   
  28.     public String getPassword() {  
  29.         return password;  
  30.     }  
  31.   
  32.     public void setPassword(String password) {  
  33.         this.password = password;  
  34.     }  
  35.   
  36. }  


 

4.      提供User.hbm.xml文件,完成实体类的映射(编写对象关系映射文件,把对象关系映射的逻辑放在此处,这个文件包括表和字段的对象关系,当操作对象时,该文件通过java反射机制产生的方法,会把对象的方法转为关系的方法)

 

  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC   
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5. <hibernate-mapping>  
  6.     <class name="com.cjq.hibernate.User">  
  7.         <id name="id">  
  8.             <generator class="uuid"/>  
  9.         </id>  
  10.         <property name="name"/>  
  11.         <property name="password"/>  
  12.     </class>  
  13. </hibernate-mapping>  

  这里完成实体类映射的时候数据就要建立了,建立数据库一定要和配置文件中的相符合。


5.      将User.hbm.xml文件加入到hibernate.cfg.xml文件中

  1. <mapping resource="com/cjq/hibernate/User.hbm.xml"/>  

6.      编写运行测试类

 

  1. import org.hibernate.Session;  
  2. import org.hibernate.SessionFactory;  
  3. import org.hibernate.cfg.Configuration;  
  4.   
  5. public class HibernateTest {  
  6.   
  7.     public static void main(String[] args) {  
  8.           
  9.         //读取hibernate.cfg.xml文件   
  10.         Configuration cfg = new Configuration().configure();  
  11.           
  12.         //建立SessionFactory   
  13.         SessionFactory factory = cfg.buildSessionFactory();  
  14.           
  15.         //取得session   
  16.         Session session = null;  
  17.         try {  
  18.             session = factory.openSession();  
  19.             //开启事务   
  20.             session.beginTransaction();  
  21.             User user = new User();  
  22.             user.setName("张三");  
  23.             user.setPassword("123");  
  24.               
  25.             //保存User对象   
  26.             session.save(user);  
  27.             User u1=(User)session.load(User.classnew String("402881e4361533e901361533eb920001"));  
  28.             System.out.print("从数据库加载数据的用户名为"+u1.getPassword());  
  29.             //提交事务   
  30.             session.getTransaction().commit();  
  31.         }catch(Exception e) {  
  32.             e.printStackTrace();  
  33.             //回滚事务   
  34.             session.getTransaction().rollback();  
  35.         }finally {  
  36.             if (session != null) {  
  37.                 if (session.isOpen()) {  
  38.                     //关闭session   
  39.                     session.close();  
  40.                 }  
  41.             }  
  42.         }  
  43.     }  
  44. }  

 

7.      建议

最好加入如下配置项,方便观察hibernate sql的生成:

     

  1. <propertynamepropertyname="hibernate.show_sql">true</property>  
  2. lt;propertyname="hibernate.format_sql">true</property>  

最好加入log4j配置文件,将该配置文件拷贝到src下,便于程序的调试。


8.      结果

 

通过一些概念和目录还有实例实现,现在对hibernate有所了解,下面的博客要对JDBC和反射机制做一些简单的介绍,这些知识是hibernate框架的基础,所以有必要在深入学习hibernate框架之前介绍一下。敬请期待!!!

深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架

这篇博客是hibernate学习的第一篇,主要简单介绍hibernate框架,之后简单说一下hibernate的目录结构,最后写一个简单的hibernate实例。通过这三步来简单的认识一下hibern...
  • Terminator_botao
  • Terminator_botao
  • 2015年01月22日 17:18
  • 330

Hibernate框架学习(一 )

Hibernate框架主要是实现数据库与实体类间的映射,使的操作实体类相当与操作hibernate框架。  只要实体类写好配置文件配好,就能实现和数据库的映射,其中实体类对应表,类的属性对应数据库的表...
  • lishuangzhe7047
  • lishuangzhe7047
  • 2014年04月14日 22:57
  • 12185

hibernate框架实例演示(增删改查):

一:hibernate框架后台: 1、导入hibernate框架常用包 2、在src下创建配置文件(hibernate.cfg.xml) ...
  • qq_28654189
  • qq_28654189
  • 2016年10月02日 17:05
  • 2124

【Hibernate】一、Hibernate框架介绍及入门程序示例

Hibernate框架简介 Hibernate是对JDBC的进一步封装。它的一个主要出发点就是希望简化Java对象持久化的编程。因为直接使用JDBC时需要程序员编写大量繁杂的代码。 Hiberna...
  • u010902721
  • u010902721
  • 2016年09月28日 14:28
  • 1043

【Hibernate框架学习】:Hibernate进阶之Hibernate核心接口和类(一)

我们来看一下Hibernate的执行流程:                         由此我们可以大概知道Hibernate的核心接口和类,Hibernate的核心类和接口一共有6个,分别...
  • erlian1992
  • erlian1992
  • 2016年12月06日 22:38
  • 705

Hibernate框架基础——Hibernate入门

Hibernate入门Hibernate介绍Hibernate是一个基于jdbc的开源的持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。Hibernate对JDBC访问数据库的...
  • yerenyuan_pku
  • yerenyuan_pku
  • 2016年10月04日 12:01
  • 8065

三大框架之hibernate入门学习教程增删改查

好久没更新分享了!现在发下三大框架的hibernate便于初学者学习!另外struts2的那些配置文件代码可以找我要,里面包括如何自定义拦截器等等。开始hibernate的学习吧!首先不多说先导包! ...
  • u010798367
  • u010798367
  • 2016年10月09日 11:37
  • 15397

Hibernate学习总结(一)

1、什么是Hibernate Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架(ORM,对象关系映射 Object Relationship mapper) ...
  • u012750846
  • u012750846
  • 2015年09月07日 15:36
  • 728

Hibernate框架(一)——总体介绍

作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷。利用Hibernate框架我们就可以不再编写重复的...
  • liujiahan629629
  • liujiahan629629
  • 2014年03月18日 09:40
  • 20166

struts2+spring+hibernate框架总结(框架分析+环境搭建+实例源码下载)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。   ...
  • showbaba3
  • showbaba3
  • 2015年10月03日 12:15
  • 3135
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架 .
举报原因:
原因补充:

(最多只允许输入30个字)