在上篇博客中,我们介绍了《hibernate基本概念和体系结构》,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基本配置。核心API的底层实现和源码解析将在以后的博客中一一为大家讲解。
首先我们一起来看一下开发一个hibernate应用程序的大体流程是什么样的(流程顺序可以颠倒):
•创建Hibernate的配置文件
•创建持久化类
•创建对象-关系映射文件
•通过Hibernate API编写访问数据库的代码
知道了开发流程,那么我们就开始我们的第一hibernate应用程序,首先我们以一个简单的学生管理应用程序来作为我们第一hibernate应用程序的开发,让大家熟悉一下hibernate的开发流程,以及对相对应功能的API有初步的认识,Hibernate应用程序定义了一些持久类,并且定义了这些类与数据库表格的映射关系。在我们这个简单的学生管理应用程序中包含了一个类和一个映射文件。让我们看看这个简单的持久类包含有一些什么?映射文件是怎样定义的?另外,我们该怎样用Hibernate来操作这个持久类。
Hibernate开发全面流程和开发配置
首先创建一个项目。然后创建配置开发环境,主要步骤如下:
MyEclipse-->ProjectCapabilities-->add Hibernate Capabilities,视图如下:
复选框选中第二个copychecke。。。。那一个。然后点击next;
为了锻炼能力,配置文件第一次手写,不用图形界面自动生成,所以把: Open configurationfile after wizard completion 选中的点掉;点击next
Specify database connection details把这也点掉;点击next;
全部都用手写,所以把create sessionFactry class此处也点掉;点击Finish;然后lib里面会自动增加一系列jar包
并且src里面也生成了hibernate.cfg.xml,:
由于本人此次练习的是整合Struts与Hibernate进行应用的开发
所以还要进行struts相关文件的配置,由于struts相关文件配置比较简单,所以此处省略;
首先编写一个持久化类:本人创建的是person类:模型类即为javabean,很简单;
注:持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getXXX()和setXXX()方法。
•持久化类有一个id属性,用来惟一标识Person类的每个对象。在面向对象术语中,这个id属性被称为对象标识符(OID,Object
Identifier)
•Hibernate要求持久化类必须提供一个不带参数的默认构造方法
下一步即写一个提交到数据库内容的表单,简单的表单不在此处写了。然后写一个action,获得表单的内容:此处action中的处理方法:execute()里面主要是把表单所要提交的信息调用模型类封装成一个类
下一步即将和hibernate的API打交道了。。。编写工具类HibernateUtil这个类主要是获得和数据库打交道的Session类
注意:此Session非彼Session(HttpSession)
一个SessionFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。
SessionFactory有以下特点:
–它是线程安全的,这意味着它的同一个实例可以被应用的多个线程共享。
–它是重量级的,这意味着不能随意创建或销毁它的实例。如果应用只访问一个数据库,只需要创建一个SessionFactory实例,在应用初始化的时候创建该实例。如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。
Session接口是Hibernate应用使用最广泛的接口。
•Session也被称为持久化管理器,它提供了和持久化相关的操作,如添加、更新、删除、加载和查询对象。
•Session有以下特点:
–不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。
–Session实例是轻量级的,所谓轻量级是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁Session对象,例如为每个客户请求分配单独的Session实例,或者为每个工作单元分配单独的Session实例。
Session接口提供了操纵数据库的各种方法,如:
–save()方法:把Java对象保存数据库中。
–update()方法:更新数据库中的Java对象。
–delete()方法:把Java对象从数据库中删除。
–get()方法:从数据库中加载Java对象。
然后在编写用session处理数据类DAO类,先编写有关接口然后编写实现类personDaoImpl,这个类主要用session处理数据执行事务的类:
示例代码:
然后编写逻辑处理类(服务类):先写有关接口,然后写实现类.这个类主要用于处理一些逻辑处理,在这个地方主要用于调用数据处理类DAO进行数据处理
然后直接在action里面写出PersonServiceImpl实例进行调用其方法进行就可以了。Action里面主要处理方法代码示例
写到这,一个hibernate主要的逻辑层就差不多了,现在就主要看怎样写配置文件了:先配置hibernate.cfg.xml.主要配置示例:
注意:
Hibernate的描述文件中存放数据库连接驱动程序类,登陆数据库的用户名/密码,映射实体类配置文件的位置等信息。
•将该配置文件存放在src目录下
描述文件相关属性描述含义:
最后一步:
对持久化(实体)类Person.java文件创建一个Hibernate映射文件Person.hbm.xml
Java的实体类是通过配置文件与数据表中的字段相关联。Hibernate在运行时解析配置文件,根据其中的字段名生成相应的SQL语句
•将该文件存放在src目录下
具体代码示例:
注:id元素对应的一定是数据库的主键列;class="increment"意为自增
<property>元素映射值 类型属性
•name属性:指定持久化类的属性的名字。
•type属性:指定Hibernate或Java映射类型。Hibernate映射类型是Java类型与SQL类型的桥梁。
•column属性:指定与类的属性映射的表的字段名。
至此,hibernate开发过程和相关配置就此完毕
分享到:
相关推荐
java程序员-从笨鸟到菜鸟.pdf
### Java程序员成长之路——从菜鸟到笨鸟 #### 一、引言 《Java程序员由菜鸟到笨鸟》是一本由曹胜欢编写的书籍,旨在帮助初学者掌握Java编程的基础知识,并逐步进阶至更高级的应用场景。本书不仅适合初学者作为...
Java程序员的成长之路是一个充满挑战与探索的过程,从初学者到熟练掌握各项技能,需要系统性的学习和实践。"Java程序员由菜鸟到笨鸟学习文档"就是这样一个旨在帮助初入Java世界的学习者逐步进阶的资源。它覆盖了从...
### Java程序员从笨鸟到菜鸟 #### 一、开发环境搭建与基本语法 ##### 开发环境搭建 在开始Java的学习之前,首先需要搭建一个合适的开发环境。这通常涉及到以下步骤: 1. **JDK(Java Development Kit)安装**:...
曹胜欢在《JAVA程序员 从笨鸟到菜鸟.pdf》中分享了他个人学习Java的经历,从迷茫到逐渐成长的过程。他强调了自学的重要性,并鼓励初学者不要怕走弯路,同时希望自己的经验可以帮助到同样在学习Java的初学者。 2. ...
资源名称:《Java程序员-从笨鸟到菜鸟》PDF 下载资源目录:作者简介:..........................................................................................................................................
《java程序员由菜鸟到笨鸟》 刚开始学习java时看过的一个学习资料。 其中包括开发环境搭建、面向对象、Javascript、设计模式、SSH、jquery、java虚拟机等内容。 设计内容较广,可以学习参考。
根据提供的文件信息,“Java程序员由菜鸟到笨鸟”是一本旨在帮助初学者成长为合格Java开发者的书籍。本书作者为曹胜欢,发布日期为2018年3月19日。下面将从多个角度对本书涉及的重要知识点进行概述。 ### 一、Java...
根据提供的文件信息,“Java程序员由菜鸟到笨鸟”是一本旨在帮助初学者成长为合格Java开发者的书籍。本书作者为曹胜欢,发布日期为2018年3月17日。以下是从该书的标题、描述以及部分可能包含的内容中提炼出的关键...
《Java游戏:笨鸟》(也称为FlappyBird)是一款基于Java编程语言开发的简单游戏,旨在帮助初学者更好地理解和掌握Java编程基础。这款游戏的实现涉及了许多Java编程的关键概念和技术,下面将对这些知识点进行详细阐述...
day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda...Java基础小节练习题答案