用hibernate做了几个小项目了 不过感觉就用了ormapping 一些save方法 query方法
很多东西也不明白 也没专门去搞清楚,昨天去面试问了挺多东西 我答得都模棱两可的
不过好像也没错 呵呵 不过还是应该搞搞清楚
今天看了尚学堂的视频 做点小结吧
package my.hibernate.util;
import my.hibernate.pojo.Customer;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class Base {
public static void main(String... args)
{
/*Customer customer=new Customer();
customer.setName("YM");
//上面的对象处于瞬时态 其与数据库和session都没关系
add(customer);
System.out.println("customerid是"+customer.getCustomerid());*/
//上面的对象处于脱管态 数据库中有相应的记录 但是因为session已经关闭 故与session无关了
//对脱管状态的对象进行更新的时候需要调用update方法
Customer customer=getCustomerById(18);
System.out.println("所查询的用户是"+customer.getName());
}
//添加
static void add(Object obj)
{
Session session=null;
Transaction tx=null;
try
{
session=HibernateUntil.getSession();
tx=session.beginTransaction();
//如果没有事务的话 会插入数据库 又被回滚
session.save(obj);
//obj此时属于持久状态 在session关闭之前都处于持久状态
//处于持久态的对象发生变化的时候 数据库中也会发生相应变化
//如果没有事务的话 persist方法则不插入数据库 会报错
//session.persist(obj);
//调用saveOrUpdate()方法的时候对象会变成持久态
//而调用merge()方法的时候对象写入了数据库但对象依然是脱管的
tx.commit();
//如果处于持久态的对象进行了修改 hibernate将在commit的时候写到数据库中
}
//catch部分不写也可以!
catch(HibernateException ex)
{
//事物回滚 并且将异常抛出
if(tx!=null)
tx.rollback();
throw ex;
}
finally
{
if(session!=null)
session.close();
}
}
static Customer getCustomerById(int id)
{
Session session=null;
try
{
session=HibernateUntil.getSession();
//get是从数据库中查询一条记录
// Customer customer=(Customer)session.get(Customer.class, id);
//load是懒加载 并没有直接访问数据库 等到调用的时候 比如customer1.getName()时候才进行数据库访问,这种方式不推荐多用
//因为任何时候customer1都不是为空的 load自己new了一个对象!! 如果库表中没有该记录 但customer1也不是空的 明白???!!
Customer customer1=(Customer)session.load(Customer.class, id);
//这个时候才会访问数据库 没有这句话将会报错
customer1.getBandid();
return customer1;
}
finally
{
if(session!=null)
session.close();
}
}
}
- 大小: 21.5 KB
分享到:
相关推荐
Hibernate三种状态和Session常用的方法 Hibernate 作为一个流行的 Java 持久层框架,提供了对数据库的操作能力,其中Session 是 Hibernate 中最核心的接口,负责管理对象的生命周期。为了更好地理解 Hibernate 的...
本文将详细介绍 Hibernate 中常用的几种方法,包括 `save`, `update`, `saveOrUpdate`, `merge` 等,帮助开发者更深入地理解 Hibernate 的工作原理及其使用方式。 #### 二、Hibernate 对象状态管理 在 Hibernate ...
在Hibernate 3.0之前,DBCP是常用的连接池实现。配置方法与C3P0类似,需要在`hibernate.cfg.xml`中指定数据库驱动、URL、用户名和密码,但DBCP没有C3P0那么多的定制选项。然而,由于Hibernate 3.0之后不再直接支持...
这是最常用的方法,避免了在保存或更新前检查对象是否已存在的步骤。 4. `delete`: 删除指定的对象,对象必须已被持久化。 D. `bulkUpdate`: 批量操作,如批量删除或更新。例如,`bulkUpdate`方法可以直接执行SQL...
标题中的“Hibernate连接池的三种配置方式”指的是Hibernate框架中常用的三种数据库连接池实现,分别是:DBCP (BasicDataSource),C3P0,以及Proxool。这些连接池的目的是管理和优化数据库连接的创建、分配和回收,...
描述中提到"用的挺久了,挺全面的",暗示这个jar包可能包含了Hibernate的核心组件以及一些常用的扩展,比如支持DOM4J库,这是一个用于XML处理的Java库,常在Hibernate中用于读写XML配置文件。另外,还提及了"orcle...
Hibernate提供了简单易用的API来实现这些操作,如根据主键查询对象、更新对象状态、删除对象等。同时,可以使用HQL(Hibernate Query Language)或SQL进行更复杂的查询。 四、Hibernate体系及执行过程 Hibernate的...
#### 三、Hibernate的配置步骤 1. **导入Hibernate的Jar包**:这是使用Hibernate的前提条件。 2. **创建Hibernate配置文件**:通常命名为`hibernate.cfg.xml`,此文件用于配置数据库连接信息和其他全局设置。 3. **...
6. 对象状态:Hibernate区分了瞬时、持久化、托管和脱管四种对象状态,理解这些状态有助于正确管理对象的生命周期。 7. 关联映射:包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)、多对多...
其中,`HibernateTemplate`作为该框架提供的一个实用工具类,封装了一系列常用的数据库操作方法,使得开发者能够更加高效地进行数据访问与管理。 #### 一、`HibernateTemplate`的常用方法简介 `HibernateTemplate`...
本教程聚焦于Hibernate中的Session接口以及get、load、persist这三个常用的方法,它们是 Hibernate 实现对象-关系映射(ORM)的核心组件。 首先,我们来理解Session接口。Session在Hibernate中扮演着数据库连接的...
本书《Beginning Hibernate, 3rd Edition》旨在为初学者提供一个系统学习 Hibernate 的平台,不仅涵盖了基础概念和技术细节,还提供了大量的实践案例,有助于读者深入理解并掌握 Hibernate 的核心原理及使用技巧。...
save()是Hibernate早期版本中最常用的方法,用于将对象持久化到数据库中。当调用Session的save()方法时,Hibernate会为对象生成一个唯一的数据库标识(ID),并将对象的状态设置为“瞬时”到“持久化”。然而,save...
在这个过程中,Hibernate负责管理对象的状态变化、持久化对象到数据库以及从数据库加载对象等操作。具体来说,当一个Java对象被持久化到数据库时,Hibernate会自动执行必要的SQL语句来插入或更新数据库中的记录;当...
ORM是Hibernate的核心特性,它提供了一种将数据库关系数据映射到Java对象的方法,从而消除了对SQL的直接依赖,简化了数据访问。ORM使得开发者可以使用面向对象的方式来操作数据库,提高了开发效率和代码的可读性。 ...
Hibernate 支持多种实例状态,包括持久化状态、瞬态状态和分离状态等,每种状态都有其特定的行为和用途。 - **2.3 JMX 集成** 介绍如何利用 Java 管理扩展 (JMX) 来监控和管理 Hibernate 应用程序的运行时行为。...
#### 三、学习Hibernate所需掌握的核心概念 - **持久化对象(Persistent Object)**:这是指那些被Hibernate跟踪其生命周期的对象,即由Hibernate管理的对象。这些对象可以是瞬时的、持久化的或游离的。 - **...
### Hibernate关联映射的作用与常用属性详解 #### 关联映射概述 在对象关系映射(Object Relational Mapping,简称ORM)技术中,Hibernate作为Java领域内非常成熟且功能强大的框架之一,它允许开发者将Java类映射...
《Hibernate 3.6.10 Final 官方文档》是Java开发中极其重要的参考资料,它详尽地阐述了Hibernate框架在3.6.10版本中的各项功能、配置和使用方法。Hibernate作为一款强大的对象关系映射(ORM)工具,能够帮助开发者将...