`
暗黑小菠萝
  • 浏览: 46932 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

Hibernate简介与搭建(一)

阅读更多
一、Hibernate简介

1.Hibernate:底层依然是通过JDBC实现的,它是对JDBC进行了轻量级的封装。
Hibernate主要用来实现Java对象和表之间的映射,除此之外还提供还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。
Hibernate可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的形式转换到一系列的对象中去。
Hibernate是java中一款开源的ORM框架。

2.持久化:将程序数据在持久状态和瞬时状态间的转换的一种机制
持久化应用:将内存中的对象存储在关系型数据库中/磁盘文件/XML数据文件中
瞬时状态:保存在内存中的数据,在程序退出后数据消失。

3.ORM(Object relational mapping)对象关系数据库映射技术
把对象模型表示的对象映射到基于SQL的关系型数据库结构中的技术。
是一种面向对象的编程方法,使用ORM方法可以避免写底层的sql语句,保证了java的跨平台、扩展、可维护。

4.其他主流的持久化层框架
MyBatis  Toplink  EJB(重量级的,本身是JavaEE规范)等等

5.Hibernate优缺点
①面向对象的思想来操作数据库
②可移植性:Hibernate做了持久化封装,所写代码具有可复用性。
③轻量级框架:不需要继承任何类,不需要实现任何接口。
缺点
①使用数据库特定的优化语句时候,不适合使用Hibernate
②Hibernate在批量数据处理时有弱势,不适合批量修改删除等操作,也是ORM框架的弱点
③效率比JDBC略差

二、Hibernate开发框架搭建
1.去官网下载相应的文档:
http://sourceforge.net/projects/hibernate/files/
  下载相应的jdbc driver
mySql:http://dev.mysql.com/downloads/connector/j/3.0.html
oracle:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
导入下载的jar包到工程中


2.在src目录下创建hibernate.cfg.xml文件,完成基本配置
先对其中几个重要属性进行说明:
属性名称作用
hibernate.connection.driver_classcom.mysql.jdbc.Driver等数据库驱动名
hibernate.connection.url*连接数据库名称
hibernate.connection.username*数据库登陆用户名
hibernate.connection.password*数据库登陆密码
hibernate.show_sqltrue/false打印出sql语句
hibernate.format_sqltrue/false格式化sql语句
hbm2ddl.autocreate/update/create-drop/validate生成表结构策略
hibernate.default_schema*生成表结构时默认添加前缀
hibernate.dialectorg.hibernate.dialect.MySQLDialect等方言

注:以上的属性名称均可以去掉hibernate.
<!DOCTYPE hibernate-configuration PUBLIC  
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
	<session-factory>
		<!-- oracle数据库驱动 -->
		<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<!-- oracle想要连接的数据库名称 -->
		<property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
		<!-- 数据库的登陆用户名 -->
		<property name="connection.username">SUNYQ</property>
		<!-- 数据库的登陆密码 -->
		<property name="connection.password">123456</property>
		<!-- 方言:为每一种数据库提供适配器,方便转换 -->
		<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>
		<property name="hbm2ddl.auto">create</property> 
		<mapping resource="Students.hbm.xml"/>	
	</session-factory>    
</hibernate-configuration>    


3.创建实体类Students.java
实体类的创建必须遵循JavaBeans的设计原则:
①公有类
②提供公有的不带参数的构造方法
③属性私有
④get/set封装
package com.iteye.sunyq.hibernate;

public class Students {
	public Students() {

	}

	private int sid;

	private String sname;

	public int getSid() {
		return sid;
	}

	public void setSid(int sid) {
		this.sid = sid;
	}

	public String getSname() {
		return sname;
	}

	public void setSname(String sname) {
		this.sname = sname;
	}

}


4.创建对象/关系映射文件Students.hbm.xml
hbm配置中一些说明:
<hibernate-mapping中
属性名称作用
schema         *                       模式名
catalog        *                       目录名
default-cascade*                       级联风格
default-access field/property/ClassName访问策略
default-lazy   true/false              加载策略
package        *                       包名

<class中
属性名称作用
name       *类别
table      *表名
batch-size n一次抓取n条数据
where      *条件
entity-name*同一个实体类映射成多个表

<id中
属性名称作用
name  *属性名
type  *类型
column*表中字段名称
length*长度

<id中包含一个子标签是主键生成策略<generator class="native"></generator>
uuid     按照uuid策略自动生成主键
assigned 代码中手动给主键赋值
native   根据数据库底层设置生成主键
foreign  对应其他表主键
identity SqlServer自增
incrementMySQL自增
sequence Oracle自增

等等
<?xml version="1.0"?>  
<!DOCTYPE hibernate-mapping PUBLIC   
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
    
<hibernate-mapping>  
	<class name="com.iteye.sunyq.hibernate.Students" table="students">
		<id name="sid" type="integer">
			<column name="id"></column>
			<generator class="native"></generator>
		</id>
		<property name="sname" type="string">
			<column name="sname"></column>
		</property>
	</class>
</hibernate-mapping>    

对于属性中的type可以有多种填写方式,还是以表格进行总结
基本类型
Hibernate映射类型Java类型
integer/int      java.lang.Integer/int
long             java.lang.Long/long
date             java.util.Date/java.sql.Date
timestamp        java.util.Date/java.util.Timestamp
time             java.util.Date/java.sql.Time
calendar         java.util.Calendar
calendar_date    java.util.calendar

在填写type属性值时使用Hibernate类型或者java类型都可以
对象类型
Hibernate映射java            mySQLOracle标准SQL
binary       byte[]          BLOB BLOB  VARCHAR/BLOB
text         java.lang.StringTEXTCLOBCLOB
clobjava.sql.clobTEXTCLOBCLOB
BLOBjava.sql.BlobBLOBBLOBBLOB

5.将Student.hbm.xml文件加入hibernate.cfg.xml配置文件中
<mapping resource="Students.hbm.xml"/> 

6.通过Hibernate API编写访问数据库的代码
package com.iteye.sunyq.hibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class Test {
	
	public static void main(String[] args) {
		//创建配置对象
		Configuration config = new Configuration().configure();
		//创建服务注册对象
		ServiceRegistry service = new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();
		SessionFactory sessionFactory = config.buildSessionFactory(service);
		Session session = sessionFactory.openSession();
		Transaction transaction = session.beginTransaction();
		Students student = new Students();
		session.save(student);
		transaction.commit();
		session.close();
	}

}

Hibernate4使用ServiceRegistry服务注册对象来创建SessionFactory对象。

以上就能够完成简单的Hibernate框架的搭建了(亲测好用),但是实际的项目中可能还是有一定区别的。
  • 大小: 19.1 KB
分享到:
评论

相关推荐

    springMVC+hibernate搭建的一个demo帮助新人

    这个“springMVC+hibernate搭建的一个demo”旨在为初学者提供一个快速入门的实例,帮助他们理解和配置这些技术的集成环境。 SpringMVC是Spring框架的一部分,它提供了处理HTTP请求、管理控制器、数据绑定、视图解析...

    配套视频的Hibernate4环境搭建源码

    跟博客上视频配套的源码,hibernate 4.19

    Hibernate4.1环境搭建

    ### Hibernate4.1环境搭建详解 #### 一、概述 在构建现代Web应用程序时,集成Spring框架、Struts2以及Hibernate等技术是非常常见的选择。这些技术的组合通常被称为SSH(Spring + Struts + Hibernate),是一种非常...

    Hibernate框架的搭建与使用

    本教程将深入探讨Hibernate框架的搭建与使用,帮助你理解如何将Java对象与数据库表进行无缝交互。 首先,我们需要了解Hibernate的核心概念。Hibernate提供了一个数据访问接口,允许我们在Java应用程序中使用面向...

    第一次搭建hibernate环境

    Hibernate支持多种数据库,包括MySQL、Oracle、SQL Server等,并且提供了一种灵活的映射机制,使得Java对象与数据库表之间的映射变得简单。 **二、搭建环境所需组件** 1. Java Development Kit (JDK):Hibernate是...

    Struts2+Hibernate开发环境搭建

    通过以上步骤,一个基本的Struts2+Hibernate开发环境就搭建完成了。在实际开发中,还需要根据项目需求进行更深入的定制和优化,例如加入Spring框架进行依赖注入,或者使用MyBatis进行更灵活的SQL操作。

    myeclipse搭建hibernate框架

    本文将详细介绍如何在MyEclipse环境中搭建Hibernate框架,以便于进行Java Web应用的开发。 首先,我们需要进行必要的准备工作。安装MyEclipse是搭建环境的第一步,它是一个强大的集成开发环境,支持多种Java应用的...

    简单struts+spring+hibernate搭建,配置

    简单struts+spring+hibernate搭建,配置,适合初学者

    spring+hibernate框架搭建demo

    本篇文章将深入探讨如何利用这两个框架搭建一个DEMO项目。 首先,Spring框架是Java企业级应用开发的核心框架,它提供了依赖注入(Dependency Injection,DI)、面向切面编程(Aspect-Oriented Programming,AOP)...

    Struts1.2+Spring2.5+Hibernate3.2框架搭建(一)

    这里我们关注的是一个经典的Java EE框架组合——Struts1.2、Spring2.5和Hibernate3.2的集成搭建。这个组合在过去的开发实践中被广泛采用,它们各自负责不同的职责,共同构建出强大的后端架构。 Struts1.2是MVC...

    Hibernate5.2.4环境搭建源码

    **Hibernate 5.2.4 环境搭建与源码解析** Hibernate 是一个流行的 Java 对象关系映射(ORM)框架,它极大地简化了数据库操作。在本教程中,我们将详细探讨如何搭建 Hibernate 5.2.4 的开发环境,并理解其源码。 ...

    hibernate框架的环境搭建

    环境搭建是使用Hibernate的第一步,主要涉及以下步骤: 1. **JDK安装**:确保已安装Java Development Kit(JDK)且版本兼容Hibernate。通常,Java 8或更高版本是推荐的。 2. **设置JDBC驱动**:根据所使用的数据库...

    Hibernate4 环境搭建

    在本文中,我们将深入探讨如何搭建一个基本的Hibernate4环境,以便开始使用这个流行的Java持久化框架。Hibernate4提供了一种高效、灵活的方式来管理对象关系映射(ORM),简化了数据库操作。以下是一步步搭建...

    hibernate环境搭建及第一程序

    【标题】:“Hibernate环境搭建及第一个程序” 在Java开发领域,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用Java对象来处理数据,而无需编写大量的SQL语句。本教程将指导...

    hibernate环境搭建

    本文将详细介绍如何搭建一个基本的Hibernate开发环境。 首先,我们需要准备一些必要的依赖库。这些库通常包含在JAR文件中,其中日志类的JAR包是必不可少的,因为Hibernate在运行时会产生大量的日志信息,这对于调试...

    hibernate 环境搭建

    本教程将指导你如何搭建一个基本的Hibernate环境,我们将使用MySQL的分支——MariaDB作为数据库。 首先,我们需要准备以下组件: 1. **JDK**: Hibernate运行在Java平台上,所以你需要安装Java Development Kit...

    hibernate5.2+SpringMVC4.3框架搭建源码

    本教程将深入探讨如何使用Hibernate 5.2和Spring MVC 4.3这两个流行的技术框架进行集成搭建,以便创建一个强大的Web应用程序。 Hibernate是Java领域的一个对象关系映射(ORM)框架,它允许开发者将数据库操作与业务...

    hibernate搭建环境超详细解

    ### Hibernate项目环境搭建详解 #### 一、理解Hibernate与项目环境搭建的重要性 Hibernate是一个开源的...通过以上步骤,你可以成功搭建一个基本的Hibernate项目环境,为进一步学习和应用Hibernate打下坚实的基础。

    在Eclipse中搭建hibernate项目环境步骤

    Hibernate 是一个流行的 Java 持久层框架,提供了对数据库的访问和操作功能。通过本文,读者可以了解到搭建 Hibernate 项目环境的详细步骤,从而更好地使用 Hibernate 实现数据库操作。 步骤 1:加载 Hibernate ...

    手动搭建Hibernate框架工程

    下面我们将深入探讨如何手动配置和搭建一个Hibernate工程。 首先,你需要确保已经安装了Java Development Kit (JDK) 和 Apache Maven,因为大多数现代Java项目都依赖于Maven来管理依赖项。接下来,我们将创建一个新...

Global site tag (gtag.js) - Google Analytics