`
KeepCrazy
  • 浏览: 60233 次
社区版块
存档分类
最新评论

hibernate入门

阅读更多
[size=large]

什么是hibernate?
    hibernate是一个基于ORM(实体关系映射)的、用于简化数据库操作的框架。

为什么要使用hibernate?
    传统的jdbc操作具有以 下缺点:
        1.在Java代码中写sql语句麻烦, 特别是遇到多表查询时;
        2.手动映射非常麻烦(stat.setInteger(...)...),特别是当属性较多时;
        3.jdbc的移植性不好,比如分页查询,Oracle和MySQL的就不同。
     hibernate内部封装了jdbc,它的hql和session大简化了数据操作,  并且去除了对不同的数据库操作在代码层面上的差异, 有很好的可移植性.


最基本的使用
     在hibernate中,几乎所有的数据操作都基于实体关系映射, 即建立数据表格和实体类之间的映射关系, 通俗的讲, 就是根据表格建立实体类或根据实体类建立表格.而在hibernate的映射方式包含基本映射, 一对多映射, 多对多映射, 组件映射 和联合主键映射等. 这些映射关系可以手动配置, 也可以用myeclipse自动生成。作为初学者, 我感觉应在熟悉手动配置后再使用自动生成。
  
    本文配有附件, 以专业、学生、课程和学生选课四个表配合文章说明. jar包有点多, 没上传.
    先介绍手动配置基本映射的方式.
    基本映射, 一个表格对应一个实体类, 实体类的属性对应于表格各字段, 是建立其它映射关系的基础.建立步骤如下.
   1.在src下添加hibernate.cfg.xml文件,配置数据库连接参数.

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
	
<hibernate-configuration>
     <session-factory>

     <!--配置方言 ,  告诉框架使用哪个数据库-->
          <property name="dialect">
               org.hibernate.dialect.MySQLDialect
          </property>
			
     <!--配置数据库连接用的参数-->
          <property name="connection.url">
               jdbc:mysql://localhost:3306/test
          </property>

          <property name="connection.username">….</property>
          <property name="connection.password"> ….</property>
          <property name="connection.driver_class">com.mysql.jdbc.Driver </property>

          <!--myeclipse database explorer 中数据库连接的名字-->
          <property name="myeclipse.connection.profile">mysql</property>
	
          <!--配置映射文件-->
          <mapping source="  ">
		
     </session-factory>
	
</hibernate-configuration>




2.参照需要被映射的表格添加实体类(和想用jdbc建立实体类的方法相同),并为其建立映射文件。每个通过表格得到的映射实体类都有自己独立的映射文件:entityName.hbm.xml, 如Major.hbm.xml.

<?xml version="1.0" encoding="utf-8"?>
			<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
			"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
			
<hibernate-mapping>
			
<class name="含有包名的类名, 如pojo.Major" table="对应的表名">
     <!--主键-->
     <id name="id" type="integer">
          <column name="id" />
          <generator class="identity"></generator>
     </id>
			
      <!--属性-->
     <property name="属性名" type="包含包名的Java数据类型, 或hibernate数据类型">
           <column name="列名"/>
     </property>
				      …
     <property name="属性名" type="包含包名的Java数据类型, 或hibernate数据类型">
           <column name="列名"/>
     </property>
</class>
</hibernate-mapping>



主键id的generator属性指定获得主键的方式, 常见的方式有:
    identity:通过数据库的自增长方式获得主键, 需要在建立数据库时指定主键的增长方式为auto_increment.
    increment:先从已有的id中找出最大值,select max(id) from tableName, 加1后执行insert操作.
    assigned:忽略数据库自动生成、在代码中指定id
    native:由框架自动选择
     sequence:依据数据库的sequence对象获取id, 适用于Oracle. 使用这种增长方式时, 格式有些不同:
<generator class="identity">
     <param name="sequence">序列对象名</param>
</generator>


property的type属性指定其数据类型.可以写完整的Java 数据类型, 如java.lang.String,  java.lang.Integer.  也可以写hibernate数据类型:string, integer, date, long, double, 分别对应于Java中的String, Integer, Date , Long, Double类,但是省去了前面的包名并将大写变为小写, 更简洁, 使用频率更高.

3.在hibernate.cfg.xml中配置映射文件。
     <mapping source="blog/pojo/Major.hbm.xml">


4.测试
测试代码见附件.

虽然手动配置很麻烦, 但在初学hibernate框架时应该要学会手动配置, 以熟悉配置文件.
(未完)
[/size]
0
1
分享到:
评论
3 楼 KeepCrazy 2012-12-26  
上次上传的附件有错误, 已经重新上传了
2 楼 KeepCrazy 2012-12-26  
真错了, 已经改过来了, 谢谢啦!
1 楼 至尊宝_唯一 2012-12-26  
好像有错别字,是ORM吧。。。

相关推荐

    Hibernate入门到精通

    "Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...

    Hibernate入门jar包

    本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之配合使用的相关组件。让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. Hibernate核心库: - `hibernate-core.jar`:这...

    Hibernate入门案例源码

    【Hibernate入门案例源码】是针对初学者设计的一份教程,旨在帮助理解并掌握Java持久化框架Hibernate的基础应用。Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使开发者可以...

    Hibernate入门(代码+笔记)

    **Hibernate入门** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现数据的增删改查。本教程将分为五个部分,逐步深入Hibernate的世界。 **...

    初学hibernate,hibernate入门

    **初学Hibernate,Hibernate入门** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。在Java应用中,通过Hibernate,开发者可以将数据库操作抽象成对象模型,使得代码...

    Hibernate入门

    ### Hibernate入门知识点详解 #### Hibernate概述与ORM思想 - **定义**:Hibernate是一个开源的、轻量级的对象关系映射(Object-Relational Mapping,简称ORM)框架,它主要应用于JavaEE架构中的DAO(Data Access ...

    hibernate入门小例子

    【hibernate入门小例子】是一个适合初学者的教程,主要涵盖了如何在JavaWeb项目中使用Hibernate框架与MySQL数据库进行集成。在这个例子中,我们将会深入理解Hibernate的核心概念,包括实体映射、对象关系映射(ORM)...

    hibernate入门--第一个实例

    【hibernate入门--第一个实例】 Hibernate 是一个强大的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。通过使用Hibernate,我们可以将数据库操作转换为对Java对象的操作,从而简化了数据库...

    Hibernate入门到精通.pdf

    《Hibernate入门到精通》这本书是针对Java开发人员深入学习Hibernate框架的一份宝贵资源。Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。通过使用Hibernate,...

    Hibernate入门教程.pdf

    ### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 **Hibernate** 是一款开放源代码的**对象关系映射(Object-Relational Mapping,简称ORM)**框架,它为Java应用提供了一种高效的机制,用于处理Java...

    struts+hibernate入门实例(eclipse版)

    ### Struts + Hibernate 入门实例(Eclipse 版) #### 一、开发环境搭建 在本章节中,作者朱千平将引导我们完成开发环境的搭建,包括以下几个步骤: 1. **下载安装Eclipse**: Eclipse 是一个开源的集成开发环境...

    史上最简单的Hibernate入门简介

    其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,看了这个希望能给你点启示!

    hibernate入门实例操作步骤

    **hibernate入门实例操作步骤** Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用Java对象的方式处理数据库事务。本篇将详细介绍Hibernate入门实例的操作步骤,...

    hibernate入门简单实例

    以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,通过这种方式,我们可以使用面向对象的编程方式来操作数据,而无需直接编写SQL语句。 2. **...

    hibernate教程,hibernate入门

    **Hibernate 教程:带你入门持久化框架** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它为 Java 应用程序提供了便捷的数据持久化服务。本教程将引导你逐步了解 Hibernate 的基本概念、安装配置以及核心...

    02_传智播客hibernate教程_hibernate入门案例的细节分析

    【标题】:“02_传智播客hibernate教程_hibernate入门案例的细节分析” 在本教程中,我们将深入探讨Hibernate,一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更加专注于业务逻辑而不是...

    hibernate入门实例DOC

    【hibernate入门实例DOC】是一个经典的教程,旨在引导初学者了解如何使用Hibernate框架与MySQL数据库进行集成。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库操作,减少了...

Global site tag (gtag.js) - Google Analytics