hibernate环境配置和使用

一.hibernate简介

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在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

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<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>
       <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"/>
    </session-factory>
</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、用户名、密码                   
<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

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.zhouxiang.model">
    <class name="User" polymorphism="explicit">
        <id name="id">
            <generator class="uuid" ></generator>
        </id>
        <property name="name" column="username"></property>
        <property name="password" column="password"></property>
    </class>
</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

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<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>
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
		<mapping resource="com/zhouxiang/model/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

User.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.zhouxiang.model">
    <class name="User" polymorphism="explicit">
        <id name="id">
            <generator class="uuid" ></generator>
        </id>
        <property name="name" column="username"></property>
        <property name="password" column="password"></property>
    </class>
</hibernate-mapping>

User类

/**
 *
 */
package com.zhouxiang.model;

/**
 * @ClassName: User
 * @Description: TODO
 * @author zx
 * @date 2014年5月15日 上午10:40:43
 *
 */
public class User {
    private String id;
    private String name;
    private String password;
    public User()
    {}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

}

测试类

/**
 *
 */
package com.zhouxiang.test;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import com.zhouxiang.model.User;

/**
 * @ClassName: Test1
 * @Description: TODO
 * @author zx
 * @date 2014年5月16日 上午10:09:55
 *
 */
public class Test1 {
	public static void main(String args[])
	{
		SessionFactory factory=null;
		Session session=null;
		try {
			Configuration cfg = new Configuration().configure();
                        factory=cfg.buildSessionFactory();
                        session=factory.openSession();
                        session.getTransaction().begin();
                        User user=new User();
                        user.setName("bbb");
                        user.setPassword("123456");
                        session.save(user);
                        session.getTransaction().commit();
		 } catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			session.getTransaction().rollback();
		}
		finally
		{
			if(session!=null)
			{
             if(session.isOpen())
             {
            	 session.close();
             }
			}
		}
	}
}

五.总结

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

hibernate环境配置和使用

时间: 2024-08-28 00:20:30

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

Hibernate之Hibernate环境配置

Hibernate之Hibernate环境配置 一.Hibernate环境搭建的步骤 1.添加Hibernate && SQLServer 的Jar antlr-2.7.7.jar dom4j-1.6.1.jar hibernate-commons-annotations-4.0.5.Final.jar hibernate-core-4.3.11.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar jandex-1.1.0.Final.jar j

Hibernate 环境配置和依赖添加

1.Hibernate依赖包的添加 File---->Project Structure,按照如图所示操作,导入所依赖的jar包. 2.生成hibernate.hbm.xml的配置文件 (1)点击File,弹出的菜单中点击Project Structure: (2)点击左侧的Modules,再点击“+”号,再在弹出的菜单中选择Hibernate: (3)在这时,项目中多出了一个Hibernate,点击Hibernate,再点击“+”号,选择hibernate.hbm.xml: (4)弹出的窗口中

SSH网上商城环境配置—浅析Hibernate

SSH网上商城虽然只有四天的视频,day01-04,不过边做项目边学习,还真是不容易,到现在为止已经进行了半个月了,才完成了两天的内容.其中光一个环境配置就花了十天左右的时间,包括配置文件添加.Jar包的添加等等.敲代码时再加上对开发环境的陌生,着实费了不少劲,调试也花费了好长时间,不过还好,现在已经熟悉一点了,做起来也顺手一些了,下面就简单汇总一下这里面用到的技术. SSH是集成框架,它是从三层的基础上发展而来的.三层中包括页面显示层.业务逻辑层.数据库操作层,SSH中同样也是,只不过每个层使

JAVA EE Hibernate基础一之环境配置

对于JAVA开发高级,hibernate是java三大框架之一,足以见得它的重要性,那么对于hibernate的使用大家有了解多少呢?从今天开始我将带领大家一道共同探讨一下hibernate的知识,hibernate对于我们开发移动应用关联数据库十分方便,hibernate对于数据库的操作十分便利,省去了很多之前开发时的不便. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibern

Spring+Springmvc+Hibernate环境搭建与配置

这里给出JavaWeb项目Spring+Springmvc+Hibernate框架环境的搭建与配置,方便以后快速创建项目.下面是以本人的一个项目为例给出的配置,不同项目具体的结构都是可以按一下结构完成的,至于配置内容则需要按照具体的项目需求更改部分内容.需要注意的是,本项目是以使用注解为前提完成的项目. 一.项目目录 首先说明一下,本项目是maven项目,采用Spring+Springmvc+Hibernate的框架,前端模板引擎采用thymeleaf,html代码存放在下面结构的templat

Hibernate学习之——Hibernate环境搭建

之前在写关于安卓闹钟的教程,写了一半就没后一半了,其实自己也没做好,在校外实习,校内毕业实习又有任务,只能先放放了,等毕业实习结束之后,在继续安卓闹钟开发之旅,相信这个时间不会很久的.现在毕业实习用到的SSH框架(Struts+Spring+Hibernate),自己没有多少时间去好好学习,但是还是想把学到的东西记录下来. 一.Hibernate简介 1.什么是Hibernate? Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有很多比如:iBATIS,myBatis,Nhib

搭建hibernate环境

Hibernate概述什么是框架1 写程序,使用框架之后,帮我们实现一部分功能,使用框架好处,少写一部分代码实现功能 什么是hibernate框架(重点)1 hibernate框架应用在javaee三层结构中 dao层框架 2 在dao层里面做对数据库crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进行封装,使用hibernate好处,不需要写复杂jdbc代码了,不需要写sql语句实现 3 hibernate开源的轻量级的

Hibernate框架 初识 ORM概念 搭建Hibernate环境 Hibernate Api

ORM概念 在学习 Hibernate 之前,我们先来了解ORM   对象关系映射 O, Object  对象 R,Realtion 关系  (关系型数据库: MySQL, Oracle…) M,Mapping  映射 ORM, 解决什么问题? 存储:   能否把对象的数据直接保存到数据库? 获取:   能否直接从数据库拿到一个对象? 想做到上面2点,必须要有映射!   总结:          Hibernate与ORM的关系?             Hibernate是ORM的实现,简化对

Spring+Spring MVC+Hibernate环境搭配

Spring+Spring MVC+Hibernate简称"SSH".Spring容器是Spring的核心,该 容器负责管理spring中的java组件.Spring的核心机制:依赖注入.Hibernate是一个不错的ORM(关系对象映射)框架.Spring+Spring MVC+Hibernate环境搭配步骤: 1.搭建Spring+Hibernate环境(跟ssh搭建步骤一致) (1)加入Spring+Hibernate的架包. 2.搭建SpringMVC环境( 1)添加Sprin