Hibernate 之增、删、改、查

本文详细介绍了如何将Oracle 10g数据库与MyEclipse 8开发环境结合,通过Hibernate框架实现对象持久化,并提供了针对主键查找、删除、更新和新增记录的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


数据库:oracle 10g

开发环境:Myeclipse8+

数据库结构:

-- Create table
create table STUDENT
(
  SID       NUMBER not null,
  SNAME     VARCHAR2(10),
  SNO       CHAR(10),
  SAGE      NUMBER,
  SSEX      CHAR(1),
  SBIRTHDAY DATE
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table STUDENT
  add constraint PK_STUDENT primary key (SID)
  using index 
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );


本例由Myeclipse添加Hibernate框架,及生成pojo类,还有HibernateSessionFactory.java

1)根据主键查找:

public void testFind() {
	Session session = HibernateSessionFactory.getSession();
	Student s = (Student) session.load(Student.class, 1234);//与get的区别:load若主键值不存在,则抛出异常
//	Student s = (Student) session.get(Student.class, 1234);//而get使用时,主键不存在,返回的是null,推荐使用
	System.out.println(s);
	HibernateSessionFactory.closeSession();
}

2)根据主键删除:

public void testDelete(){
	Session session = HibernateSessionFactory.getSession();
	Student s = new Student();
	s.seSid(1234);
	Transaction tran =session.beginTransaction();
	session.delete(s);
	tran.commit();//要记得提交,否则去查看数据库就可以看到数据并没有删除
	HibernateSessionFactory.closeSession();
}

3)根据主键更新:

public void testUpdate1() {
	Session session = HibernateSessionFactory.getSession();
	Object obj = session.get(Tuser.class, 1234);
	if (obj != null) {		
		Student s = (Student) obj;

user.setSname("zhangfei");Transaction tran = session.beginTransaction();session.update(s);tran.commit();}HibernateSessionFactory.closeSession();}

4)增加记录:

public void testSave() {
	Session session = HibernateSessionFactory.getSession();
	Student s = new Student();
	s.setSid(1234);
	s.setSname("zhangfei");
	s.setSno("s001");
	s.setSsex("1");
	s.setSbirthday(new Date());
	Transaction tran = session.beginTransaction(); // save,update,delete都需要加transaction
	session.save(s);
	tran.commit();
	HibernateSessionFactory.closeSession();
}

未完。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值