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