Hibernate 之增、删、改、查


数据库: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();
}

未完。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章