一.hibernate简单介绍

      
        Hibernate是一个开放源码的对象关系映射框架,它对JDBC进行了很轻量级的对象封装,使得Java程序猿能够随心所欲的使用对象编程思维来操纵数据库。 Hibernate能够应用在不论什么使用JDBC的场合,既能够在Java的client程序使用,也能够在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中代替CMP,完毕数据持久化的重任。

二.hibernate环境搭建

1.导入hibernate核心jar包

         须要导入hibernate3.jar和lib/required文件下全部的jar包再加上一个hibernate-jpa-2.0-api-1.0.1.Final.jar就可以。如图
       

2.加入hibernate核心配置文件hibernate.cfg.xml

         
  1. <!DOCTYPE hibernate-configuration PUBLIC
  2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5. <session-factory >
  6. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  7. <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
  8. <property name="hibernate.connection.username">root</property>
  9. <property name="hibernate.connection.password">123456</property>
  10. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  11. <property name="hibernate.show_sql">true</property>
  12. <property name="hibernate.hbm2ddl.auto">update</property>
  13. <mapping resource="com/zhouxiang/model/User.hbm.xml"/>
  14. </session-factory>
  15. </hibernate-configuration>
       当中<hibernate-configuration>为配置文件的根,session-factory标签下
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
        <property name="hibernate.connection.username">root</property>

<property name="hibernate.connection.password">123456</property>是数据源的配置分别为驱动、url、username、密码                   
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>是配置数据库方言即对哪种数据库操作

        <property name="hibernate.show_sql">true</property>是配置是否打印数据库操作语句
        <property name="hibernate.hbm2ddl.auto">update</property>指定对数据库的默认操作
        <mapping resource="com/zhouxiang/model/User.hbm.xml"/>指定要载入的表与实体间映射关系文件

3.加入表与实体间映射关系文件 xxx.hbm.xml


  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping package="com.zhouxiang.model">
  6. <class name="User" polymorphism="explicit">
  7. <id name="id">
  8. <generator class="uuid" ></generator>
  9. </id>
  10. <property name="name" column="username"></property>
  11. <property name="password" column="password"></property>
  12. </class>
  13. </hibernate-mapping>


三.使用hibernate的7个步骤


1.第一步:

          创建Configuration读取配置信息
          Configuration cfg = new Configuration().configure();

2.第二步:

          创建sessionFactory
         SessionFactory factory= cfg.buildSessionFactory();

3.第三步:打开session

        Session session=factory.openSession();

4.第四步:开启事务Transaction

        session.getTransaction().begin();

5.第五步:进行持久化操作,即增删查改等操作

         User user=new User();
         user.setName("aaa");
         user.setPassword("123456");
         session.save(user);

6.第六步:提交事务

        session.getTransaction().commit();

7.关闭资源,也就是关闭session

        session.close();
       
       第一步通过创建Configuration对象读取hibernate.cfg.xml配置文件信息,为创建对应的session做准备。第二步依据读取的配置文件信息创建sessionfactory对象。在hibernate.cfg.xml文件里有sessionfactory的配置信息,在sessinofactory中配置了数据源及对数据库操作的一些信息,而sessionfactory依据这些信息去创建对应的session对象。session对象是hibernate操作数据库的一个句柄对象,用来将数据持久化或其它的操作,与HttpSession没有本质联系。总的来说hibernate.cfg.xml配置文件信息主要是在为创建数据持久化过程中使用的对象session对象做描写叙述(配置),仅仅只是在hibernate中又封装了configuration、sessionfactory,configuration用来读取配置文件,sessionfactory作为session工厂对象依据configuration提供的指定配置去创建对应的session,进而通过session对象去完毕数据的持久化。

四.实例代码

hibernate.cfg.xml
  1. <!DOCTYPE hibernate-configuration PUBLIC
  2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://www.hibernate.org/dtd/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/hibernate</property>
  9. <property name="hibernate.connection.username">root</property>
  10. <property name="hibernate.connection.password">123456</property>
  11. <property name="hibernate.show_sql">true</property>
  12. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  13. <property name="hibernate.hbm2ddl.auto">update</property>
  14. <mapping resource="com/zhouxiang/model/User.hbm.xml"/>
  15. </session-factory>
  16. </hibernate-configuration>
User.hbm.xml
  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping package="com.zhouxiang.model">
  6. <class name="User" polymorphism="explicit">
  7. <id name="id">
  8. <generator class="uuid" ></generator>
  9. </id>
  10. <property name="name" column="username"></property>
  11. <property name="password" column="password"></property>
  12. </class>
  13. </hibernate-mapping>
User类
  1. /**
  2. *
  3. */
  4. package com.zhouxiang.model;
  5.  
  6. /**
  7. * @ClassName: User
  8. * @Description: TODO
  9. * @author zx
  10. * @date 2014年5月15日 上午10:40:43
  11. *
  12. */
  13. public class User {
  14. private String id;
  15. private String name;
  16. private String password;
  17. public User()
  18. {}
  19. public String getId() {
  20. return id;
  21. }
  22. public void setId(String id) {
  23. this.id = id;
  24. }
  25. public String getName() {
  26. return name;
  27. }
  28. public void setName(String name) {
  29. this.name = name;
  30. }
  31. public String getPassword() {
  32. return password;
  33. }
  34. public void setPassword(String password) {
  35. this.password = password;
  36. }
  37.  
  38. }
測试类
  1. /**
  2. *
  3. */
  4. package com.zhouxiang.test;
  5.  
  6. import org.hibernate.HibernateException;
  7. import org.hibernate.Session;
  8. import org.hibernate.SessionFactory;
  9. import org.hibernate.cfg.Configuration;
  10.  
  11. import com.zhouxiang.model.User;
  12.  
  13. /**
  14. * @ClassName: Test1
  15. * @Description: TODO
  16. * @author zx
  17. * @date 2014年5月16日 上午10:09:55
  18. *
  19. */
  20. public class Test1 {
  21. public static void main(String args[])
  22. {
  23. SessionFactory factory=null;
  24. Session session=null;
  25. try {
  26. Configuration cfg = new Configuration().configure();
  27. factory=cfg.buildSessionFactory();
  28. session=factory.openSession();
  29. session.getTransaction().begin();
  30. User user=new User();
  31. user.setName("bbb");
  32. user.setPassword("123456");
  33. session.save(user);
  34. session.getTransaction().commit();
  35. } catch (HibernateException e) {
  36. // TODO Auto-generated catch block
  37. e.printStackTrace();
  38. session.getTransaction().rollback();
  39. }
  40. finally
  41. {
  42. if(session!=null)
  43. {
  44. if(session.isOpen())
  45. {
  46. session.close();
  47. }
  48. }
  49. }
  50. }
  51. }

五.总结

       事实上简而言之hibernate仅仅做了一件事,那就是将对象及对象关系持久化到关系型数据库中,而这样的映射关系是直接使用面向对象编程思维来操作数据库,这样使得程序猿在编程的过程中仅仅须要关注怎样处理对象与对象间的关系,而不须要去考虑对象是怎样持久化到数据库中。hibernate使得编程人员在软件开发过程中将很多其它的精力集中在对象的处理上,简化了数据持久化的过程,加快了开发速度,增强了开发效率,减少了风险。

hibernate环境配置和使用的更多相关文章

  1. Hibernate 环境配置和依赖添加(使用java web和普通javaSE工程)

    1.Hibernate依赖包的添加 File---->Project Structure,按照如图所示操作,导入所依赖的jar包. 2.生成hibernate.hbm.xml的配置文件 (1)点 ...

  2. JAVA EE Hibernate基础一之环境配置

    对于JAVA开发高级,hibernate是java三大框架之一,足以见得它的重要性,那么对于hibernate的使用大家有了解多少呢?从今天开始我将带领大家一道共同探讨一下hibernate的知识,h ...

  3. 菜鸟学习Hibernate——配置Hibernate环境

    一.概念. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库.既然学习Hibernate那么第 ...

  4. Hibernate笔记——Hibernate介绍和初次环境配置

    Hibernate简介 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate ...

  5. Hibernate学习之——Hibernate环境搭建

    之前在写关于安卓闹钟的教程,写了一半就没后一半了,其实自己也没做好,在校外实习,校内毕业实习又有任务,只能先放放了,等毕业实习结束之后,在继续安卓闹钟开发之旅,相信这个时间不会很久的.现在毕业实习用到 ...

  6. Hibernate 基础配置及常用功能(一)

    本来是想等全部框架测试完以后再统一发布的,但是随着测试的一点点增加感觉把需要叙述的东西放在一起终将会是一场灾难.所以还是打算分成几章来描述,其中还包括一些有待解决的问题.短期很难腾出时间来仔细阅读Hi ...

  7. Spring3+SpingMVC+Hibernate4全注解环境配置

    Spring3+SpingMVC+Hibernate4全注解环境配置 我没有使用maven,直接使用Eclipse创建动态Web项目,jar包复制在了lib下.这样做导致我马上概述的项目既依赖Ecli ...

  8. Hibernate缓存配置

    一级缓存 Hibernate的一级缓存是由Session提供的,因此它只存在于Session的生命周期中,当程序调用save(),update(),saveorupdate()等方法 及调用查询接口l ...

  9. Maven搭建struts2+spring+hibernate环境

    Maven搭建struts2+spring+hibernate环境(一) 本文简单的使用STS的自带的maven插件工具搭建ssh(struts2+spring+hibernate)开发环境,图文并茂 ...

随机推荐

  1. 常用在线工具及API网址总结

    1.小图标在线查找 https://www.iconfinder.com/ 2.在线做图,Flowchart流程图,BPMN图,Org组织结构图等 http://www.processon.com/ ...

  2. Objective-C编程调试技巧

    为Objective-C编程调试技巧(译) http://www.cocoawithlove.com/2008/10/debugging-tips-for-objective-c.html 这篇文章是 ...

  3. ssh 应用

    SSH反向连接及Autossh ssh 隧道: http://www.cnblogs.com/robinyjj/archive/2008/11/02/1325018.html This guy wri ...

  4. JSthis对象

    第一章: this是javascript语言的一个关键字,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如 function test(){ ; } 随着函数使用场合的不同,this ...

  5. asp.net ImageMap控件

    ImageMap 控件可创建包含定义的作用点区域的图像.当用户单击作用点区域时,该控件可生成到服务器的回发或导航到指定的 URL 首先是添加一个asp:ImageMap 选择asp:CircleHot ...

  6. SQL游标+递归查询客户子客户转换率

    ALTER PROCEDURE [dbo].[Account3YearsConversion ] as DECLARE @AccountId UNIQUEIDENTIFIER , @yearbefor ...

  7. SessionState的配置 [转载]

    ASP.NET会话状态模块在Web.config文件中<System.web>标记下的<Sessionstate>标记的mode属性来决定该属性的四种可能的值: Off. In ...

  8. 使用关联对象(AssociatedObject)为UIButton添加Block响应

    在开发中,要给UIButton添加点击事件的话,通常的做法是这样的 UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; [ ...

  9. CentOS 修改默认语言

    查看所有的locale语言 [root@centos6 ~]# locale -a ... ... ... ... xh_ZA xh_ZA.iso88591 xh_ZA.utf8 yi_US yi_U ...

  10. [hadoop]Cannot create directory /mdrill/tablelist/fact_seller_all_d. Name node is in safe mode.

    在执行mdrill创建表的时候报如下异常(蓝色部分为关键): [mdrill@hadoop1101 bin]$ ./bluewhale mdrill create ./create.sql higo ...