随着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 不仅简化了 Java 应用程序与数据库交互的过程,还提供了一系列强大的工具和特性来支持高级数据库操作,如事务管理、缓存策略、批量处理等,大大提高了开发效率。在实际应用中...
Hibernate是一个开源的对象关系映射(ORM)框架,它为Java语言提供了一种方便的工具来操作关系型数据库。Hibernate通过将Java程序中的POJO(普通旧Java对象)映射到数据库表,使得开发者可以使用面向对象的方式来操作...
Hibernate 是一个强大的 Java 持久化框架,它简化了数据库与对象之间的交互。通过提供一组丰富的API,Hibernate使得开发者能够在应用中轻松地管理和操作数据库数据。以下是对这些API的详细解析: 1. **访问数据库...
在本文档中,我们将详细介绍如何将 Spring、SpringMVC 和 Hibernate 框架集成,以便构建一个完整的 Web 应用程序。我们将介绍如何配置 Spring 框架,如何配置 SpringMVC 框架,如何配置 Hibernate 框架,並且如何将...
【三大框架之一Hibernate介绍】 Hibernate是一个广泛应用于Java开发领域的开源对象关系映射(ORM)框架。它通过将Java对象和数据库表之间的映射关系进行抽象,使得开发者可以用面向对象的方式处理数据库操作,从而...
【标题】"01_传智播客hibernate教程_hibernate介绍与动手入门体验" 涉及的是一门关于Hibernate的初学者教程,旨在帮助开发者了解并掌握这一流行的Java对象关系映射(ORM)框架。Hibernate是Java开发中的一个关键工具...
在Hibernate中,`inverse`属性是一个关键的概念,它用于定义一对多或多对一关系中的维护端。`inverse="true"`表示另一端负责维护关联关系,这在处理关联实体的保存和更新时具有重要意义。例如,如果你有一个学生类和...
本篇将介绍Hibernate的入门知识,包括基本概念、配置和简单操作。 **1. Hibernate简介** Hibernate是由 Gavin King 创建的一个开源项目,它实现了JPA(Java Persistence API)规范,提供了一种在Java应用中持久化...
以上就是Hibernate核心开发接口的简要介绍。在实际开发中,通过熟练掌握这些接口和概念,我们可以高效地利用Hibernate进行数据库操作,降低系统的耦合度,提升开发效率。通过阅读给出的源码s2sh_Hibernate03_CoreAPI...
北京动力节点教育培训公司提供的Hibernate5讲义,不仅对Hibernate框架进行了全面的介绍,而且通过实例演示了如何使用Hibernate进行基本的数据库操作。该讲义涵盖了Hibernate的基本技术、配置方法以及如何开发一个...
Hibernate 介绍 Hibernate 是一个开源的持久层框架,它提供了一个抽象层来访问关系数据库。它允许开发者使用面向对象编程语言来访问关系数据库,从而简化了数据库交互的过程。Hibernate 的主要特点是将对象关系映射...
以上步骤详细介绍了如何使用Hibernate+IDEA 2018构建一个完整的Hibernate程序,包括环境搭建、项目配置、文件结构设计、配置文件解析、实体类与映射文件编写以及单元测试等内容。通过这些步骤,可以实现一个简单的...
【标签】"hibernate helloworld"标签明确了项目的核心内容,即通过一个基础的示例来介绍Hibernate的基础用法,包括实体类的创建、配置文件的设置、Session的使用等。 【压缩包子文件的文件名称列表】中的各个文件及...
【标题】:“01 Hibernate介绍与动手入门体验” 在IT领域,Hibernate是一个广泛使用的对象关系映射(ORM)框架,它极大地简化了Java开发者在处理数据库操作时的工作。本课程旨在为初学者提供一个深入理解Hibernate...
下面将详细介绍Hibernate中的多对一关联关系以及如何实现这一关系。 1. **多对一关联的配置**: - 在实体类中,使用`@ManyToOne`注解来声明一个字段作为多对一的关联字段。这个注解通常用于父类的引用,例如: ``...
本书不仅是一本教程和参考指南,还深入介绍了如何开发和优化工业级别的Hibernate应用程序。作者们按照从简单到复杂的顺序逐步介绍概念,并通过丰富的实例来解释每一个细节。以下是本书覆盖的一些关键知识点: 1. **...
Hibernate是一个开源的ORM框架,它为Java开发者提供了一种高效、便捷的方式来管理数据库操作,消除了Java对象与SQL之间的鸿沟。在本书中,作者详细介绍了Hibernate的核心概念、配置、实体管理、数据持久化、查询语言...
标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...
同时,文档《Hibernate对象状态及一对多关联.doc》详细介绍了如何设置和管理一对多关联,这种关联在企业级应用中非常常见,例如一个用户可以有多个订单。 2. **一对一和多对多关联** 在《Hiberate一对一和多对多...