首先创建一个项目。然后创建配置文件,主要步骤如下:
MyEclipse-->ProjectCapabilities-->addHibernateCapabilities,视图如下:
复选框选中第二个copychecke。。。。那一个。然后点击next;
为了锻炼能力,配置文件第一次手写,不用图形界面自动生成,所以把:选中的点掉;点击next
把这也点掉;点击next;
全部都用手写,所以把此处也点掉;点击Finish;
然后lib里面会自动增加一系列jar包
并且src里面也生成了hibernate.cfg.xml,:
由于本人此次练习的是整合Struts与Hibernate进行应用的开发
所以还要进行struts相关文件的配置,由于struts相关文件配置比较简单,所以此处省略;
首先编写一个持久化类:本人创建的是person类:
模型类即为javabean,很简单;
注:持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getXXX()和setXXX()方法。
•持久化类有一个id属性,用来惟一标识Person类的每个对象。在面向对象术语中,这个id属性被称为对象标识符(OID,ObjectIdentifier)
•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类,先编写有关接口然后编写实现类,这个类主要用session处理数据执行事务的类:
示例代码:
//调用工具类获得session
Sessionsession=factory.openSession();
Transactiontx;
try{
//开始一个事务
tx=session.beginTransaction();
//执行事务
...
//提交事务
tx.commit();
}
catch(Exceptione){
//如果出现异常,就撤销事务
if(tx!=null)tx.rollback();
throwe;
}
finally{
//不管事务执行成功与否,最后都关闭Session
session.close();
}
然后编写逻辑处理类(服务类):先写有关接口然后写实现类这个类主要用于处理一些逻辑处理,在这个地方主要用于调用数据处理类DAO进行数据处理
publicclassPersonServiceImplimplementsPersonService{
publicvoidsavePerson(Personperson)
{
PersonDAOpersonDAO=newPersonDAOImpl();
personDAO.savePerson(person);
}
}
然后直接在action里面写出PersonServiceImpl实例进行调用其方法进行就可以了。Action里面主要处理方法代码示例:
publicStringexecute()throwsException
{
Personperson=newPerson();
person.setUsername(username);
person.setPassword(password);
person.setAge(age);
java.sql.DateregisterDate=newjava.sql.Date(newjava.util.Date().getTime());
System.out.println("222222");
person.setRegisterDate(registerDate);
PersonServiceImplpersonService=newPersonServiceImpl();
personService.savePerson(person);
returnSUCCESS;
}
写到这,一个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开发过程和相关配置就此完毕
注:由于文章图片太多,上传不了,所以没上传,如需要图片示例,请联系本人。
转载请注明出处。
相关推荐
9.2.5 使用Hibernate配置文件编辑器 141 9.2.6 使用反向工程生成持久化对象、映射文件和DAO类 143 9.2.7 使用Hibernate功能 151 9.3 MyEclipse中Hibernate框架的高级操作 152 9.3.1 在Hibernate反向工程中定制映射...
完全解析jBPM4应用开发技术 9位工作流业内专家联袂推荐 随着在现代企业管理中对于信息化、流程化的深度挖掘,具有业务流程管理的技术和思想已经成为致力于全面掌控企业级应用系统人士“日常生活、居家旅行”的必备...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
2012版最全面试题大全目录: 一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环?...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...