Hibernate讲义1文档格式.docx

上传人:b****6 文档编号:21811146 上传时间:2023-02-01 格式:DOCX 页数:14 大小:216.09KB
下载 相关 举报
Hibernate讲义1文档格式.docx_第1页
第1页 / 共14页
Hibernate讲义1文档格式.docx_第2页
第2页 / 共14页
Hibernate讲义1文档格式.docx_第3页
第3页 / 共14页
Hibernate讲义1文档格式.docx_第4页
第4页 / 共14页
Hibernate讲义1文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Hibernate讲义1文档格式.docx

《Hibernate讲义1文档格式.docx》由会员分享,可在线阅读,更多相关《Hibernate讲义1文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

Hibernate讲义1文档格式.docx

④对JDBC的轻量级封闭,内存消耗少,运行效率高。

⑤开发效率高,Eclipse、JBuilder等主流JAVA集成开发环境对Hibernate有很好的支持,在大的项目,特别是持久层关系映射很复杂的情况下,Hibernate效率高的惊人。

Hibernate体系结构如图所示,从中可以看出,Hibernate使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。

图5-1Hibernate的体系结构

在分层体系架构中,Hibernate负责应用程序与数据库之间的数据交换,起ORM中间件的作用,使得应用程序通过Hibernate的API就可以访问数据库。

在应用中使用Hibernate,首先必须进行Hibernate与数据库连接设置、连接池参数设置及ORM映射文件的创建,使用Hibernate的开发步骤如下:

●设计:

一般首先进行领域对象的设计。

因为在Hibernate中,我们的领域对象可以直接充当持久化类。

●映射:

定义Hibernate的映射文件,实现持久化类和数据库之间映射。

●应用:

使用Hibernate提供的API,实现具体的持久化业务。

1.1.3第一个Hibernate3程序

要进行Hibernate开发,首先要进行开发环境的配置,主要有JDK(Java程序、Java服务器运行的基础)、Tomcat(Web服务器)、DBMS(数据库管理系统,如MSSQLServer)、MyEclipse(集成开发工具)等,这些工具的安装与使用在前面章节已有介绍,下面来看一下开发一个Hibernate程序的基本过程。

创建项目

首先创建一个Java工程hibernate3,并在MSSQLServer的hibdb数据库中创建数据表tb_userInfo,代码如下:

CREATE 

TABLE 

t_userInfo(

idintnotnull,

namevarchar(50)notnull,

passwordvarchar(50)notnull,

primarykey(Id)

);

⑵创建对数据库的连接

在使用Hibernate进行开发之前,需要一个能够访问的DatabaseExplorer连接配置。

选择菜单Window->

OpenPerspective->

MyEclipseDatabaseExplorer,如图5-2所示。

图5-2打开DatabaseExplorer连接配置

在打开的窗口左侧单击右键,选择“New”,弹出如图5-3所示的对话框,在其中进行数据库连接驱动设置,各项的设置如表5-1所示:

表5-1连接配置

项目名

设置值

设置说明

Drivertemplate

MicrosoftSQLServer

根据所使用的数据库指定不同值

Drivername

mysqlserver

用户自己指定

ConnectionURL

jdbc:

microsoft:

sqlserver:

//localhost:

1433;

DatabaseName=hibdb

根据所连接的数据库进行设置,此处连接到数据库hibdb

Username

sa

连接数据库的用户名

Password

123

连接数据库的密码

DriverJARs

msbase.jar;

mssqlserver.jar;

msutil.jar

添加DBMS的驱动,不同的DBMS有自己的JAR包

Driverclassname

com.microsoft.jdbc.sqlserver.SQLServerDriver

由前面的配置自动生成

设置完成,单击“Finish”结束,即创建了一个名为“mysqlserver”的连接,如图5-3所示。

图5-3数据库连接设置

图5-4成功连接数据库

⑶添加HibernateCapabilites到项目中

接下来在已创建的项目hibernate3中添加MyEclipseHibernate功能,通过向导来完成。

右键单击项目hibernate3,在弹出菜单中选择MyEclipse->

AddHibernateCapabilites…来启动向导,如图5-5所示。

图5-5添加Hibernate框架

选择所需的类库,设置完成后单击“Next”,弹出如图5-6所示的对话框,设置配置文件的路径及名称,选择默认值,单击“Next”,在弹出的对话框中进行数据库连接的设置。

选择DBDriver为“mysqlserver”,则系统会自动根据连接填充相应值,如图5-7所示。

图5-6设置Hibernate的配置文件

图5-7数据库连接的详细信息

单击“Next”,弹出如图5-8所示的对话框,进行SessionFactory的创建,设置SessionFactory的路径及名字,在src下创建一个新包“chap5.hibernate”,单击“Finish”按钮结束。

图5-8创建SessionFactory

设置完毕后,在项目hibernate3中添加了HibernateJAR包、配置文件hibernate.cfg.xml以及类HibernateSessionFactory.java。

Hibernate的配置文件可以是hibernate.properties或hibernate.cfg.xml(二者任选其一),由于hibernate.cfg.xml配置的便捷与完整性,使之成为Hibernate配置文件之首选。

生成的hibernate.cfg.xml配置文件代码如下:

<

?

xmlversion='

1.0'

encoding='

UTF-8'

>

!

DOCTYPEhibernate-configurationPUBLIC

"

-//Hibernate/HibernateConfigurationDTD3.0//EN"

--GeneratedbyMyEclipseHibernateTools.-->

hibernate-configuration>

<

session-factory>

propertyname="

connection.username"

sa<

/property>

connection.url"

DatabaseName=pubs<

dialect"

org.hibernate.dialect.SQLServerDialect<

myeclipse.connection.profile"

mysqlserver<

connection.password"

123<

connection.driver_class"

com.microsoft.jdbc.sqlserver.SQLServerDriver<

<

mappingresource="

chap5/hibernate/UserInfo.hbm.xml"

/>

/session-factory>

/hibernate-configuration>

⑷编写相应的Java类

编写一个简单的持久化类UserInfo.java,这个类中包括需要持久化的属性,如主键id、用户名name、密码password,属性相关的setter和getter方法。

在包chap5.hibernate下创建类UserInfo,代码如下:

packagechap5.hibernate;

publicclassUserInfo{

privateIntegerid;

privateStringname;

privateStringpassword;

publicIntegergetId(){

returnid;

}

publicvoidsetId(Integerid){

this.id=id;

publicStringgetName(){

returnname;

publicvoidsetName(Stringname){

this.name=name;

publicStringgetPassword(){

returnpassword;

publicvoidsetPassword(Stringpassword){

this.password=password;

}

⑸编写对象关系映射文件

Hibernate的映射文件是实体对象与数据库关系表之间相互转换的重要依据,一般,一个映射文件对应数据库中一个关系表,关系表之间的关联关系也在映射文件中进行配置。

在包chap5.hibernate下,创建文件UserInfo.hbm.xml文件,编写代码如下:

xmlversion="

1.0"

encoding="

utf-8"

DOCTYPEhibernate-mappingPUBLIC"

-//Hibernate/HibernateMappingDTD3.0//EN"

"

--

MappingfileautogeneratedbyMyEclipsePersistenceTools-->

hibernate-mapping>

classname="

chap5.hibernate.UserInfo"

table="

t_login"

>

idname="

id"

type="

integer"

columnname="

/>

generatorclass="

native"

/generator>

/id>

username"

string"

name"

length="

50"

not-null="

true"

password"

/class>

/hibernate-mapping>

⑹编写测试类

创建一个新的Java类HibernateTest.java,向数据表t_login中插入一条记录,代码如下:

importorg.hibernate.Session;

importorg.hibernate.Transaction;

publicclassHibernateTest{

publicstaticvoidmain(String[]args){

UserInfoui=newUserInfo();

ui.setUserName("

zhang"

ui.setPassword("

123"

Sessions=HibernateSessionFactory.getSession();

Transactiont=s.beginTransaction();

s.save(ui);

mit();

System.out.println("

恭喜,第一个Hibernate程序运行成功,记录已插入数据表t_login中!

s.close();

若数据表中没有记录,运行程序后,可以发现在数据表中插入了一条新记录“1zhang123”,主键值“1”由系统自动生成。

 

入门测试实例二:

Servlet中访问Hibernate

设计步骤:

1.创建一个Web项目:

hibernate_test3

2.增加Hibernate特性

3.利用反向工程生成:

UserInfo.java、配置文件等如下图所示:

4.创建一个Servlet类:

HibernateServlet.java

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.my.UserInfo;

importcom.my.ccit.HibernateSessionFactory;

importorg.hibernate.*;

publicclassHibernateServletextendsHttpServlet{

/**

*ThedoGetmethodoftheservlet.<

br>

*

*Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.

*

*@paramrequesttherequestsendbytheclienttotheserver

*@paramresponsetheresponsesendbytheservertotheclient

*@throwsServletExceptionifanerroroccurred

*@throwsIOExceptionifanerroroccurred

*/

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

response.setContentType("

text/html;

charset=gb2312"

PrintWriterout=response.getWriter();

UserInfouser=newUserInfo();

user.setName("

王小二"

user.setPassword("

Sessionsession=HibernateSessionFactory.getSession();

Transactiontx=session.beginTransaction();

session.save(user);

out.println("

保存用户成功啦!

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

doGet(request,response);

测试结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1