上篇博客《Hibernate征途(二)之基础与核心》介绍了Hibernate的基础内容和核心内容,这篇博客简单实践一下。第一篇博客也说过Hibernate是一种JDBC的简化方案,既然是和数据库相关的操作,自然离不开CRUD,也就是常说的增删改查:
C reate new records
R etrieve existing records
U pdate existing records
D elete existing records.
七步骤
从步骤来看,Hibernate的使用都可以分为七个步骤,如下图:
即:
- 编写实体类,配置实体类的映射。
- 创建SessionFactory
- 创建并开启一个session
- 针对session,开启事务
- 进行数据库增删改查操作
- 提交或回滚事务
- 关闭session
实例
既然说到简单,就把简单贯彻到底,下面以保存一个用户为例,注意这七个步骤的使用。
User.java
public class User {
private String id;
private String name;
private String password;
private Date createTime;
private Date expireTime;
/**
……对应的setters和getters
**/
}
映射文件
<?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.tgb.hibernate.User" >
<id name="id">
<generator class="uuid" />
</id>
<property name="name" />
<property name="password" />
<property name="createTime" />
<property name="expireTime" />
</class>
</hibernate-mapping>
Utils
封装对SessionFactory和Session常用的操作。
public class HibernateUtils {
private static SessionFactory factory;
static{
try {
//get configuration
Configuration cfg=new Configuration().configure();
//create session factory
factory=cfg.buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Session getSession(){
return factory.openSession();
}
public static void closeSession(Session session)
{
if (session!=null) {
if (session.isOpen()) {
session.close();
}
}
}
public static SessionFactory getSessionFactory()
{
return factory;
}
}
测试保存
public void testSave1()
{
Session session=null;
try {
//get session
session=HibernateUtils.getSession();
//open transaction
session.beginTransaction();
//create user
User user=new User()
User user =new User();
user.setCreateTime(new Date());
user.setExpireTime(new Date());
user.setName("zher");
user.setPassword("123");
//execute save
session.save(bird);
//commit transaction
session.getTransaction().commit();
} catch (Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
}
finally
{
//close session
HibernateUtils.closeSession(session);
}
}
其它操作
save()仅是session操作的一种,除此之外,还有load()/get()、delete()、update(),使用类似不再赘述。
总结
这应该是Hibernate最简答的一个例子,这篇博客用于对上篇博客中三种状态和五个个核心接口使用的理解,下篇博客将介绍各式各样的映射,That' all。
分享到:
相关推荐
Hibernate与JDBC对于数据库的性能操作对比事例,配置,更多信息资源
利用Hibernate编写的基本例程,完成基本的CRUD操作
利用ext3+struts2+hibernate+spring的CRUD+分页这四个框架实现crud,详细说明grid的用法,
Struts2+Spring+Hibernate+ExtJS开发CRUD功能
spring.mvc.hibernate231security-CRUD
springmvc4.0+hibernate4.0的完整crud
Struts_Spring_Hibernate_CRUD操作案例_-分页查询
带有分页,分页跳转,部门员工表的CRUD,hibernate注解方式操作实体,struts2动态方法调用
struts2.2.3-spring3.0.6-hibernate3.6.6 二、Demo功能(导入sql可直接运行) 0.数据库文件doc/db.sql 1.引入Spring全注解 2.抽取业务/持久层通用代码(UniversalService/UniversalDao),避免重复编写 比如有实体:...
结合hibernate和struts2写的crud小demo
spring3.2 hibernate4 demo CRUD 完整例子
通过使用Strust2+Hibernate实现简单CRUD基本操作,有需要可以下载学习。
HibernateCRUD HibernateCRUD 学习Hibernate技术。 ER图的简单CRUD:
SpringMVC+Hibernate +MySql+ EasyUI实现CRUD
NULL 博文链接:https://cdxs2.iteye.com/blog/1934707
Struts2整合Spring Hibernate的CRUD实例Struts2整合Spring Hibernate的CRUD实例
struts2 spring 2.5 hibernate3整合 CRUD实例含分页 整合版本struts2 spring 2.5 hibernate3 简单的实现了一个用户的CRUD操作(列表展示有分页版本) 设计到了Validate效验,excel生成下载
struts2与hibernate的整合实现数据的crud操作,还有复选框删除的实例,运用了Jquery的技术。 里面有使用需知,欢迎大家下载。
Spring4-Struts2-Hibernate4 CRUD Demo
对于某个数据库的单独一个表的增删改查操作,简单易懂可移植性强。需要配合mysql数据库,由于只有一个表,只需要按照java文件里面的建一个database叫chinasoft,再添一个表就可以看到实例的操作效果了,非常简单,...