`

第一章Hibernate开发与实战学习

阅读更多

首先要做一下准备工作,即获得所有的jar包和相应的工具。

1.myeclipse ---7.0 +

2.Oracle------(mysql)均可

3.数据库的驱动--本人用的是oracle的 ---ojdbc14.jar

4.到www.hibernate.org 网站上下载最新的hibernate框架,我用的是hibernate-distribution-3.3.2.GA,解压缩后,打开可以看到hibernate3.jar,这是hibernate的核心包,但是仅仅这一个包是不够的,他还需要别的依赖库。打开该文件下的lib下,会发现有一个required文件夹,里面都是所需的依赖库。但是还是少一个slf4.jar的实现类。

easy,下载一个即可,直接到slf4官方网址下载即可。下载解压之后,slf4j-simple-1.5.10.jar。最新的即可。然后此时这些包便构成了,应用hibernate的最小核心库。共八个文件。

他们是:antlr-2.7.6.jar,commons-collections-3.1.jar,dom4j-1.6.1.jar,hibernate3.jar,

javassist-3.9.0.GA.jar,jta-1.1.jar,slf4j-api-1.5.10.jar,slf4j-simple-1.5.10.jar

 

准备工作做完了后,就要进行实践了。

第一步,建立一个java project,名为chapter01_first

第二步,建立自己的书库库表格.可以通过pl/sql工具建立,也可以sql建立,均可。同时建立了一个序列,如果用mysql的就不用这样了,mysql中提供了自动增加的功能。

     表格的sql语句为:

drop table guestbook;
create table GUESTBOOK
(
ID NUMBER(8) not null primary key,    --留言id
NAME  VARCHAR2(20) not null,            --留言者的姓名
PHONE VARCHAR2(20),                        --留言者的电话号码
EMAIL VARCHAR2(20),                          --留言者的email
TITLE VARCHAR2(80) not null,              --留言的标题
CONTENT VARCHAR2(2000),                 --留言内容
CREATE_TIME DATE not null                  --留言创建的日期
);
 create sequence  gb_seq increment by 1 start with 1 nocycle;  --id 的序列

第三步,建立持久化类,与这个表对应:

package com.crazy.exmples;

import java.util.Date;

public class GuestBook {
	
	//对应数据库中的字段,该类叫做持久化类
	private  Integer id;
	private String name;
	private String email;
	private String phone;
	private String title;
	private String content;
	private Date createTime;
	getters and setters......
	
}

 第四步,配置数据库,把hibernate.cfg.xml从下载的框架里的tutorials中拷贝出该文件,放在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">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:ora92</property>
        <property name="connection.username">scott</property>
        <property name="connection.password">tiger</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">2</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.Oracle9iDialect</property>

        <!-- Enable Hibernate's current session context -->
        <property name="current_session_context_class">thread</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <property name="format_sql">false</property>

         <!--指定数据库映射的配置文件所在路径-->
        <mapping resource="com\crazy\examples\GuestBook.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

 

第五步,配置映射关系,再从中拷贝出用于映射持久化类和数据库表的配置文件,user.hbm.xml。重新命名为GuestBook.hbm.xml,放在和GuestBook所在的包中。

<?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 
	package="com.crazy.examples">

	<class name="GuestBook" table="GUESTBOOK" lazy="true">
		<comment>Users may bid for or sell auction items.</comment>
		
		<id name="id">
			<generator class="sequence">
			<param name="sequence">gb_seq</param>
			</generator>
		</id>
		
		<property name="name" column="name" type="java.lang.String"/>
		<property name="email" column="email" type="java.lang.String"/>
		<property name="title" column="title" type="java.lang.String"/>
		<property name="content" column="content" type="java.lang.String"/>
		<property name="phone" column="phone" type="java.lang.String"/>
		<property name="createTime" column="create_time" type="java.util.Date"/>		
		
	</class>
	
</hibernate-mapping>

 基本工作完毕。

最后是测试工作,编写一个HibernateText的测试类

package com.crazy.examples;

import java.util.Date;

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

public class HibernateTest {

	public static void main(String[] args) {

		GuestBook gb = new GuestBook();
		gb.setName("test");
		gb.setEmail("test");
		gb.setPhone("7758521");
		gb.setTitle("test");
		gb.setContent("test");
		gb.setCreateTime(new Date());
		
	
		
		//load the config files
		Configuration config = new Configuration();
		config.configure();
		
		SessionFactory sessionFactory = config.buildSessionFactory();
		Session session = sessionFactory.getCurrentSession();
		Transaction tx = session.beginTransaction();
		session.save(gb);
		tx.commit();
                sessionFactory.close();
	}

}
 

运行,可以考单console中会出现很多记录信息,并且还会显示调用的sql。

最后,查看数据库,看是否插入了词条数据。

代码中有很多<br>,要删除。第一次写这么长的文章,写给自己看的如果有朋友看,则更好。

0
0
分享到:
评论

相关推荐

    hibernate开发与实战 源代码

    《Hibernate开发与实战》源代码提供了深入学习和实践Hibernate框架的机会。这个压缩包包含了从CHAPTER01到CHAPTER22的源代码示例,涵盖了Hibernate框架的多个关键方面。遗憾的是,由于文件大小限制,几个项目和必要...

    第4章【源码】java web整合开发实战--基于struts 2+hibernate+spring 贾蓓 镇明敏 杜磊

    在本章中,我们将深入探讨Java Web开发中的一个经典整合框架——Struts 2、Hibernate和Spring的联合应用。这三位技术大师贾蓓、镇明敏和杜磊为我们提供了宝贵的实战经验,帮助开发者理解如何有效地将这三个框架集成...

    第3章【源码】java web整合开发实战--基于struts 2+hibernate+spring 贾蓓 镇明敏 杜磊

    在本章"第3章【源码】java web整合开发实战--基于struts 2+hibernate+spring"中,我们将深入探讨如何在Java Web应用程序中集成三个关键的开源框架:Struts 2、Hibernate和Spring。这些框架分别负责控制层、持久层和...

    轻量级Java EE企业应用实战(第4版) Struts 2+Spring 4+Hibernate整合开发 光盘 源码

    这本书的光盘内容可能包含了每一章的实例源码,按照01到10的顺序,很可能是按照章节结构组织的,例如01可能是第一章的源码,02代表第二章,以此类推。"光盘说明.txt"文件应该包含了这些源码的详细说明和使用指南,...

    Hibernate实战(第2版 中文高清版)

    第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化   1.1 什么是持久化   1.1.1 关系数据库   1.1.2 理解SQL   1.1.3 在Java中使用SQL   1.1.4 面向对象应用程序中的持久化   1.2 范式不...

    北大青鸟Y2使用Hibernate开发租房系统8-11章全

    在这一章,你会学习如何在项目中集成Hibernate,设置hibernate.cfg.xml配置文件,以及怎样通过注解或XML文件定义实体类与数据库表之间的映射关系。实体类是业务对象的Java表示,而映射文件则是描述这些对象如何在...

    第2章【源码】java web整合开发实战--基于struts 2+hibernate+spring 贾蓓 镇明敏 杜磊

    在"第2章"的源码中,我们可以深入学习这三大框架如何协同工作。通常,开发流程会涉及以下几个关键步骤: 1. **配置**:设置Struts 2、Hibernate和Spring的配置文件,包括struts.xml、hibernate.cfg.xml和spring配置...

    Struts2+Spring+Hibernate框架技术与项目实战 源码(中)

    在"Struts2+Spring+Hibernate框架技术与项目实战 源码(中)"这个资料中,我们聚焦于第五篇的内容,这部分涵盖了19到23章的所有光盘代码。这些章节通常会深入讲解如何将这三个框架集成,并通过实际项目进行实战演练。...

    JSF基于EJB Hibernate Spring整合开发与项目

    通过这一章的学习,读者应该能够掌握JSF的基本用法,并能够开发出简单的JSF应用。 #### 三、JSF实战案例 ##### 3.1 HTML标签说明 JSF提供了多种HTML标签,这些标签可以帮助开发者快速创建动态网页。了解这些标签...

    JavaWeb开发实战1200例源代码

    【JavaWeb开发实战1200例源代码】是一份涵盖了广泛Java Web开发技术的实践教程,通过1200个实例,旨在帮助开发者深入理解和掌握这一领域的重要知识点。这份资源不仅提供了丰富的代码示例,同时也强调了在实际项目中...

    轻量级Java EE企业应用实战第三版第一章源码

    5. **第一章源码**:通常第一章会介绍基础概念和环境搭建,可能包括创建第一个Java EE应用、设置开发环境、理解Maven或Gradle构建工具的使用,以及Spring Boot和Hibernate的基础配置。 6. **学习内容**:学习这部分...

    Struts 2+Hibernate+Spring整合开发技术详解 12~17章

    通过学习这一部分的内容,开发者能熟练掌握Struts 2、Hibernate和Spring的整合应用,提升开发大型企业级应用的能力。每个章节都可能涵盖上述知识点的一个或多个方面,结合实际示例和源代码,有助于读者深入理解和...

    Struts2+Spring+Hibernate框架技术与项目实战 源码(上).zip

    在源码中,"第1篇"可能涉及了环境搭建和基础概念介绍,包括安装配置Struts2、Spring和Hibernate,以及创建第一个示例项目。"第2篇"和"第3篇"可能逐步深入,讲解了如何在实际项目中整合这三个框架,实现数据的增删改...

    北大青鸟7.0Hibernate第七章代码

    【标题】"北大青鸟7.0Hibernate第七章代码"涉及的是Java开发中关于Hibernate框架的一个教学实践章节,主要集中在Hibernate 7.0版本。Hibernate是Java领域内一个流行的持久化框架,它简化了数据库操作,使开发者可以...

    轻量级Java_EE企业应用实战_Struts_2+Spring_3+Hibernate整合开发_第3版 第10章代码

    在本资源中,我们关注的是"轻量级Java_EE企业应用实战"一书的第3版,特别是第10章的案例代码,该代码涵盖了Struts 2、Spring 3和Hibernate的整合开发。这三者是Java企业级开发中的核心技术框架,它们的结合可以构建...

    轻量级Java EE企业应用实战--Struts 2+Spring+Hibernate整合开发

    《轻量级Java EE企业应用实战--Struts 2+Spring+Hibernate整合开发》这本书由李刚编著,主要探讨了在Java EE环境下如何利用轻量级框架进行高效的企业级应用开发。书中聚焦于三个核心的开源框架:Struts 2、Spring 和...

    ACCP7北大青鸟Y2使用Hibernate开发租房系统课件之二

    《使用Hibernate开发租房系统》是北大青鸟ACCP7第二学年的高级课程,旨在帮助学员深入理解并掌握基于Java的ORM框架——Hibernate的使用。这个课件分为8-12章,涵盖了Hibernate的核心概念和实战技巧,对于学习者来说...

    Java Web整合开发实战 随盘源代码1-9章

    《Java Web整合开发实战》随盘源代码涵盖了1-9章的内容,这是一份非常珍贵的学习资源,适合那些想要深入理解和实践Java Web开发的程序员。这份资料可能由于大小限制被分成了两个压缩包,读者需要在相关的上传资源中...

    Struts 2整合Hibernate开发.rar

    在"第18章 Struts 2整合Hibernate开发.ppt"中,我们可能会学习到以下几个核心知识点: 1. **Struts 2基础**:首先会介绍Struts 2的基本概念,包括Action、Result、Interceptor等核心组件,以及配置文件struts.xml的...

Global site tag (gtag.js) - Google Analytics