`
xinyang_z
  • 浏览: 7163 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hibernate (介绍一)

阅读更多




随着java技术的逐渐成熟与完善,作为建立企业级应用的标准平台,J2EE得到了长足的发展。借助于J2EE规范中包含的多项技术。Enterprise javaBean(EJB),Java Servelts(servlet),java server Pages(jsp) java Message Services(JMS)等 开发出许多应用的系统,但是,在传统的J2EE应用开发过程中也出现了一些问题 1) 数据模型和逻辑模型之间的矛盾,目前使用的数据库基本上都是关系型数据库,而java本质上一种面向对象的语言,对象在存储和读取时使用SQL和JDBC进行数据操作,降低了编程的效率以及系统的可维护性。 2) 传统的J2EE应用多采用基于EJB的重量级框架,这种框架适合于开发大型企业应用,但是使用EJB容器进行开发和调试需要耗费大量时间,为降低代码大的耦合性,提高系统的开发效率   提出了一种基于struts框架和Hibernate框架的J2EE 应用的开发策略! 以前大体的接触过但是没有仔细研究过,这两天刚开始进行学习,写本博客的目的是为了加深技术的巩固,如果有不准确的地方请多多包含!

     废话不多说了 咱就先从Hibernate数据持久层框架开始说起!

    HIbernate是一个数据持久层框架,是一种实现的对象和关系之间映射(O/R Mapping)的工具,他能支持                                              它对JDBC进行了轻量级的对象封装,是程序员可以是用对象编程思想来操作数据库,它不仅提供了从java类 到数据表的映射,也提供了数据查询和恢复机制,相对于使用JDBC和SQL来操作数据库,使用了Hibernae能大大的提高实现效率!

HIbernate框架用配置文件的形式来定义java对象和数据库表之间的映射关系,同时在更深的层面讲数据库表之间的关系解释为对象之间java对象之间的继承以及包含等关系,通过HQL语句将复杂的关系算法用对象的方式描述。在很大程度上简化了对象的数据查询,加快了开发的效率,在hibernate种有一个简单而之间的API,用于对数据库说表示的对象执行查询,要创建或修改这些对象,只需在在程序与他们进行交互。然后告诉hibernate保存即可。这样,大量封装持久化操作的业务逻辑也不再需要编写繁琐的JDBC语句,从而使数据持久层得到极大的简化!





1 新建一个java项目 (java项目即可,因为我们知道hibernate它能支持透明持久化从这个角度来看它没有侵入性 所谓侵入性它没有侵入hibernate任何的API所以它叫轻量级框架,轻量级框架的好处是没有侵入性 另外的一个好处是为测试带来了好处,测试非常简单 测试就行我们写普通的java应用程序一样不需要什么环境只需要几个jar包就可以了写个main函数一侧就可以了 它没有侵入性和测试非常简单 这是它流行的一个原因。所以我们建立一个java项目就可以了 )
2 创建User Library  假如jar

导入jar文件 这样很麻烦的 所以我们建立一个自定义的库 以后用的时候直接导入就可以了

创建方式:windows-Preferences--java  里面有一个Build Path 选中User Libraies 就可以了 new 一下,名称可以随便起 我们这里叫Hibernate3就可以了 需要注意的是下面的那个单选框 不要选中!下一步为这个库导入需要的jar就可以了 这样我们的User Libeaies库就已经建立好了  但是我们还需要引用到工程里面

单击工程--右键 --properties---Java Build Path ----Libraries    ---add  Library  找到User Library   然后Next 选中 点击OK就可以了
3 创建hibernate配置文件  hibernate.cfg.xml 为了便于调试 最好加入log4j配置文件 在这里面配置数据库我们先放到src目录下吧



<?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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        <property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;databasename=xinyang</property>
        <property name="connection.username">sa</property>
        <property name="connection.password">sa</property>
        <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
        <property name="myeclipse.connection.profile">many2one</property>
        <property name="hibernate.show_sql">true</property>
       
     <mapping resource="com/xinyang/bean/Users.hbm.xml"/><!-- 要放到property属性后面 -->
    </session-factory>
</hibernate-configuration>





下面我们架构配置完成了下面我 我说点废话 :

使用Hibernate我们正确的使用方式是什么 ,应该先建立对象模型不应该先建表,这是正确的思维方式 但是有些公司还是先创建表 在做 在使用hibernate  这样就不O了 ,因为表式面向关系的,所以我们先建立实体类 



4:定义实体类



package com.xinyang.bean;
import java.util.Date;
public class Users {
private String id;//表示ID
private String name;
private String password;
private Date createTime;//生效日期
private Date expireTime;//过期日期

   get ,set ()方法

}

5:我们建立映射文件 这个映射文件的名字和路径是可以随便取的,他的目录通常是和实体类放在一起,因为这个映射文件时描述实体类中的属性的 所以通常称为元数据,元数据是描述类和类中属性关系的 ,





<?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.xinyang.bean.Users"><!-- 实体类的目录 -->
  <id name="id">
   <generator class="uuid"/><!-- 全局的唯一标识 配置生成策略-->
  </id>
  <property name="name"/> <!-- 普通属性用property -->
  <property name="password"/>
  <property name="createTime"/><!-- hibernate有一套java到数据库的映射机制根据属性自己配置字段的数据类型 -->
  <property name="expireTime"/>
</class>
</hibernate-mapping>

当然表名和列名可以重新命名 我们以后在讲 ,它们默认的和属性名一致,表明和实体类名一致










6  编写hbm2ddl工具类讲实体类生成数据库表

package com.xinyang.hibernate;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

/**
* 生成表-
* @author Administrator
*-
*/
public class ExportDB {

public static void main(String[] args){
  //用到Hibernate API Configuration 作用 :读取配置文件-hibernate.cfg.xml
// Configuration cfg=new Configuration(); 读取hibernate.properties文件
  Configuration cfg=new Configuration().configure();
  SchemaExport export=new SchemaExport(cfg);
  export.create(true, true);
 
}
}

注意在生成之前 要把数据库建立起来 ,数据库名称它不会自动创建

7  我们写一个客户端  往里面插入一条数据测试下

package com.xinyang.servlet;

import java.util.Date;

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

import com.xinyang.bean.Users;

public class Client {
public static void main(String[] args){
  //读取hibernate.cfg.xml文件
  Configuration cfg=new Configuration().configure();
  //一个数据库对应一个sessionFactory 
  //创建SessionFactory
  SessionFactory factory=cfg.buildSessionFactory();
 
  //session对connection进行封装
  org.hibernate.Session session=null;
 
  try{
   session=factory.openSession();
   //开启事物
   session.beginTransaction();
   Users user=new Users();
   user.setName("张三");
   user.setPassword("123");
   user.setCreateTime(new Date());
   user.setExpireTime(new Date());
   session.save(user);
   //提交事物
   session.getTransaction().commit();
  }catch(Exception e){
   e.printStackTrace();
   //回滚事物
    session.getTransaction().rollback();
  }finally{
   if(session!=null){
    if(session.isOpen()){
     session.close();
    }
   }
  }
}
}
  • 大小: 96.5 KB
分享到:
评论

相关推荐

    Hibernate介绍

    Hibernate介绍,介绍了Hibernate相关的知识点,是入门的一份文档!

    hibernate介绍

    通过以上介绍,我们可以看到 Hibernate 不仅简化了 Java 应用程序与数据库交互的过程,还提供了一系列强大的工具和特性来支持高级数据库操作,如事务管理、缓存策略、批量处理等,大大提高了开发效率。在实际应用中...

    .hibernate 框架介绍

    Hibernate是一个开源的对象关系映射(ORM)框架,它为Java语言提供了一种方便的工具来操作关系型数据库。Hibernate通过将Java程序中的POJO(普通旧Java对象)映射到数据库表,使得开发者可以使用面向对象的方式来操作...

    hibernate(api_介绍)

    Hibernate 是一个强大的 Java 持久化框架,它简化了数据库与对象之间的交互。通过提供一组丰富的API,Hibernate使得开发者能够在应用中轻松地管理和操作数据库数据。以下是对这些API的详细解析: 1. **访问数据库...

    Spring+SpringMVC+Hibernate框架集成详解

    在本文档中,我们将详细介绍如何将 Spring、SpringMVC 和 Hibernate 框架集成,以便构建一个完整的 Web 应用程序。我们将介绍如何配置 Spring 框架,如何配置 SpringMVC 框架,如何配置 Hibernate 框架,並且如何将...

    三大框架之一Hibernate 介绍

    【三大框架之一Hibernate介绍】 Hibernate是一个广泛应用于Java开发领域的开源对象关系映射(ORM)框架。它通过将Java对象和数据库表之间的映射关系进行抽象,使得开发者可以用面向对象的方式处理数据库操作,从而...

    01_传智播客hibernate教程_hibernate介绍与动手入门体验

    【标题】"01_传智播客hibernate教程_hibernate介绍与动手入门体验" 涉及的是一门关于Hibernate的初学者教程,旨在帮助开发者了解并掌握这一流行的Java对象关系映射(ORM)框架。Hibernate是Java开发中的一个关键工具...

    Hibernate 简单 PPT 总结

    在Hibernate中,`inverse`属性是一个关键的概念,它用于定义一对多或多对一关系中的维护端。`inverse="true"`表示另一端负责维护关联关系,这在处理关联实体的保存和更新时具有重要意义。例如,如果你有一个学生类和...

    hibernate系列(一)hibernate入门

    本篇将介绍Hibernate的入门知识,包括基本概念、配置和简单操作。 **1. Hibernate简介** Hibernate是由 Gavin King 创建的一个开源项目,它实现了JPA(Java Persistence API)规范,提供了一种在Java应用中持久化...

    Hibernate教程03_Hibernate核心开发接口介绍

    以上就是Hibernate核心开发接口的简要介绍。在实际开发中,通过熟练掌握这些接口和概念,我们可以高效地利用Hibernate进行数据库操作,降低系统的耦合度,提升开发效率。通过阅读给出的源码s2sh_Hibernate03_CoreAPI...

    Hibernate Hibernate5 讲义 PDF

    北京动力节点教育培训公司提供的Hibernate5讲义,不仅对Hibernate框架进行了全面的介绍,而且通过实例演示了如何使用Hibernate进行基本的数据库操作。该讲义涵盖了Hibernate的基本技术、配置方法以及如何开发一个...

    Hibernate完整使用教程

    Hibernate 介绍 Hibernate 是一个开源的持久层框架,它提供了一个抽象层来访问关系数据库。它允许开发者使用面向对象编程语言来访问关系数据库,从而简化了数据库交互的过程。Hibernate 的主要特点是将对象关系映射...

    Hibernate+IDEA 2018 一个hibernate程序

    以上步骤详细介绍了如何使用Hibernate+IDEA 2018构建一个完整的Hibernate程序,包括环境搭建、项目配置、文件结构设计、配置文件解析、实体类与映射文件编写以及单元测试等内容。通过这些步骤,可以实现一个简单的...

    一个简单的hibernate helloworld

    【标签】"hibernate helloworld"标签明确了项目的核心内容,即通过一个基础的示例来介绍Hibernate的基础用法,包括实体类的创建、配置文件的设置、Session的使用等。 【压缩包子文件的文件名称列表】中的各个文件及...

    01 hibernate介绍与动手入门体验

    【标题】:“01 Hibernate介绍与动手入门体验” 在IT领域,Hibernate是一个广泛使用的对象关系映射(ORM)框架,它极大地简化了Java开发者在处理数据库操作时的工作。本课程旨在为初学者提供一个深入理解Hibernate...

    hibernate多对一关联关系

    下面将详细介绍Hibernate中的多对一关联关系以及如何实现这一关系。 1. **多对一关联的配置**: - 在实体类中,使用`@ManyToOne`注解来声明一个字段作为多对一的关联字段。这个注解通常用于父类的引用,例如: ``...

    hibernate实战 英文版

    本书不仅是一本教程和参考指南,还深入介绍了如何开发和优化工业级别的Hibernate应用程序。作者们按照从简单到复杂的顺序逐步介绍概念,并通过丰富的实例来解释每一个细节。以下是本书覆盖的一些关键知识点: 1. **...

    Hibernate实战

    Hibernate是一个开源的ORM框架,它为Java开发者提供了一种高效、便捷的方式来管理数据库操作,消除了Java对象与SQL之间的鸿沟。在本书中,作者详细介绍了Hibernate的核心概念、配置、实体管理、数据持久化、查询语言...

    Hibernate 中文api 等学习资料

    标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...

    北大青鸟Hibernate学习资料

    同时,文档《Hibernate对象状态及一对多关联.doc》详细介绍了如何设置和管理一对多关联,这种关联在企业级应用中非常常见,例如一个用户可以有多个订单。 2. **一对一和多对多关联** 在《Hiberate一对一和多对多...

Global site tag (gtag.js) - Google Analytics