package dao;
import java.util.Date;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;
import dao.po.User;
/**
* 这里做CURD工作
*
*/
public class UserDAOImpl
{
/**
* @param args
*/
public static void main(final String[] args)
{
//test1();
test2();
//test3();
}
/**
* 保存查询测试
*/
public static void test1()
{
final User u = new User();
u.setBirthday(new Date());
u.setName("北京市");
save(u);
get(1);
}
/**
* 修改一个 脱管 的对象, 这是没有先查询.
*/
public static void test2()
{
final int id = 6;
get(id);
final User u = new User();
u.setBirthday(new Date());
u.setId(id); //这里指定ID , 好修改
u.setName("重庆市");
update(u);
get(id);
}
/**
* 测试 load 强制加载
*/
public static void test3()
{
final User user = load(1);
System.out.println("查询完成:" + user.getName());
}
public static void save(final Object obj)
{
Session s = null;
Transaction t = null;
try
{
s = HibernateUtil.getSeesion();
t = s.beginTransaction();
s.save(obj);
t.commit();
}
finally
{
if (s != null)
{
s.close();
}
}
System.out.println("保存完成");
}
public static User get(final int id)
{
final Session s = HibernateUtil.getSeesion();
final User user = (User) s.get(User.class, id);
s.close();
System.out.println("查询完成:" + user.getName());
return user;
}
public static User load(final int id)
{
final Session s = HibernateUtil.getSeesion();
final User user = (User) s.load(User.class, id);
//强制加载
Hibernate.initialize(user);
s.close();
return user;
}
public static void update(final User u)
{
Session s = null;
Transaction t = null;
try
{
s = HibernateUtil.getSeesion();
t = s.beginTransaction();
s.update(u);
t.commit();
}
finally
{
if (s != null)
{
s.close();
}
}
System.out.println("修改完成");
}
}
分享到:
相关推荐
【标题】:“1 Hibernate 第一例” 【描述】:这篇博客文章主要介绍了如何在实际项目中使用Hibernate,一个流行的Java对象关系映射(ORM)框架,来实现数据库操作。作者通过一个具体的实例,展示了从创建数据库表到...
一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流
Hibernate 是一个开源的O/R mappimg的框架,基于JDBC提供了一种持久性数据管理的方案,相对于EntityBean来说是相当轻量级的。由于Hibernate是基于 JDBC的,所以它的数据库查寻的能力相对于CMP来说也是异常强大的,...
**hibernate小例** 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本示例旨在帮助初学者理解和熟悉Hibernate的基本概念和用法。 首先,我们需要理解Hibernate的...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是一种常见的关系数据库模型。本篇将深入探讨在Hibernate中实现一对一主键关联映射的单项关联方式。这种关联意味着两个实体类共享相同的主键,即一个...
Hibernate支持多种对象关联,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。通过`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`注解,可以定义对象间的关联...
一、Hibernate一对一关联类型 一对一关联在现实世界中很常见,例如一个人只有一个身份证,一个身份证也只能属于一个人。在数据库设计中,这种关系通常通过主键和外键的方式实现,其中一方的主键作为另一方的外键,...
在这个名为"hibernate和struts整合 商品信息和用户信息一例题"的项目中,我们将探讨如何将这两个框架集成,以便在商品信息和用户信息管理中实现高效的数据交互。 首先,让我们深入了解`Hibernate`。`Hibernate`允许...
标题 "Spring3.2.5Hibernate4.0.1Integration 完整範例" 指的是将 Spring 3.2.5 版本与 Hibernate 4.0.1 版本整合的一个实例项目。这个项目可能是为了演示如何在实际应用中有效地结合这两个框架,以便于更高效地管理...
这里我们以Apache ServiceMix为例,它是一个基于OSGi的ESB,支持多种适配器。 1. **JCA适配器方式**:安装并配置JCA Hibernate连接器,如OpenEJB的Hibernate JCA连接器。在ServiceMix中,可以通过Karaf命令行或部署...
以用户和订单为例,`User`类对应一个`Order`类的集合: ```xml <!-- User.hbm.xml --> ``` 在`Order`类的映射文件中,我们需要指定其对应的用户ID: ```xml <!-- Order.hbm.xml --> ``` 这里的`inverse=...
2. Maven或Gradle:Hibernate项目通常使用构建工具管理依赖,这里我们以Maven为例。确保已安装Maven,并配置好全局Maven仓库。 3. 数据库:选择一个支持的数据库,如MySQL、PostgreSQL等,安装并创建一个用于测试的...
以T_account表为例,创建一个名为accountInfo的Java类,该类包含与表字段相对应的私有变量,以及对应的getter和setter方法。这样,实体类就代表了数据库中的记录。 第六步,创建Hibernate映射文件。这个文件...
以之前的学生和课程为例,课程实体类中将有一个指向学生的属性,用以表示哪个学生选修了这门课。这个属性通常是学生实体的引用,同时需要指定关联的主键字段。 在实际操作中,我们需要在Java实体类中添加对应的注解...
3. 数据库表:在本例中,可能会有一个名为`users`的表,与`User`实体类对应。 4. SessionFactory:这是Hibernate的主要工厂类,用于创建`Session`对象。`SessionFactory`从`hibernate.cfg.xml`中读取配置,并初始化...
但在本例中,作者提到了一种较为简化的设计方式,即不在数据库层面上明确设定外键,而是将逻辑关系的控制交给了Hibernate框架。这种方式虽然可能减轻了数据库的设计负担,但对于数据完整性和一致性提出了更高的要求...
【标题】"Hibernate期末作业一对多(主外键)"涉及的是关系数据库设计与Java持久化框架Hibernate的应用,特别是关于一对多关联关系的实现。在数据库设计中,一对多关联是指一个实体(如表)可以对应多个其他实体,而...
总的来说,"hibernate-tutorials_java_hibernate_Eclipse_fallenweg_"这个资源包提供了一个全面的学习路径,涵盖了从安装配置到实际开发的所有关键步骤,对于希望掌握Hibernate的Java开发者来说是一份宝贵的资料。...
Hibernate是一个优秀的持久层框架,它主要解决Java对象与关系数据库之间的映射问题。通过使用Hibernate,程序员可以面向对象的方式操作数据库,而不需要编写繁琐的JDBC代码。Hibernate的核心功能是实现对象关系映射...