Hibernate的初体验
来源:互联网 发布:阿里影业马云 编辑:程序博客网 时间:2024/06/03 01:40
在JavaProject中 , 初次写了三个方法 增删改查 完成对数据库的操作.
第一个方法, 增加的方法,
public void addTest() {
SessionFactory sf = null;
Session session = null;
Transaction tx = null;
try {
Configuration cf = new Configuration().configure();
sf = cf.buildSessionFactory();
session = sf.openSession();
tx = session.beginTransaction();
Person person = new Person();
person.setUserName("joyhouse");
person.setPassword("pig");
session.save(person);
tx.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
tx.rollback();
} finally {
session.close();
}
}
其中 session = sf.openSession();
tx = session.beginTransaction();
Person person = new Person();
person.setUserName("joyhouse");
person.setPassword("pig");
session.save(person);
tx.commit();
比较关键 , save() 是session 类中已经写好的, 直接将需要插入的数据,封装成对象,放进去, save() 一下就Ok了, 再带一个 tx.commit() .
删除方法:
public void testDelete(){
Session session = sf.openSession();
Transaction tx = null ;
try {
tx = session.beginTransaction();
Person person = this.get(2);
session.delete(person);
tx.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(tx != null){
tx.rollback();
}
e.printStackTrace();
}finally{
session.close();
}
}
删除方法 首先利用传入的条件, 一个主键ID 调用方法中 已经带有的get() , 查询出来相应的对象 ,之后利用delete() 方法 将这个对象 person对象删除.
更新方法:
public void testUpdate(){
Session session = sf.openSession();
Transaction tx = null ;
try {
tx = session.beginTransaction();
Person person = this.get(1);
person.setUserName("new zero");
session.update(person);
tx.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(tx != null){
tx.rollback();
}
e.printStackTrace();
}finally{
session.close();
}
}
更新方法和上面的雷同, 也是先根据ID 将数据对象 取出来, person.setUserName("new zero"); 将需要修改的数据 person.setUserName("new zero"); 这样处理, 之后 session.update(person) OK了.
查询方法:
public Person get(Integer id){
Session session = sf.openSession();
Person person = (Person)session.get(Person.class, id);
session.close();
return person;
}
public void testLoad(){
Person person = this.get(2);
System.out.println(person.getUserName()+" , "+ person.getPassword());
}
这个代码量很少 一看Ok , 但是四个方法中 唯一有点区别的机试查询方法是不需要使用Transaction 类, 它是不需要事务的 .
- Hibernate的初体验
- hibernate痛苦的初体验
- Hibernate --Hibernate的入门体验
- Hibernate的初步体验。
- hibernate初体验
- Hibernate初体验
- Hibernate Search 初体验
- Hibernate初体验
- Hibernate之初体验
- hibernate初体验
- hibernate初体验
- Hibernate初体验
- hibernate-初体验
- 基于Hibernate的锁体验
- Hibernate+Webwork2分页初体验
- Hibernate之初体验一
- Hibernate初体验(1)
- Hibernate初体验(2)
- 对java数据流的理解
- MD5算法
- .NET设计模式(21): 状态模式(State Pattern)
- 用C#和本地Windows API操纵系统菜单
- 什么是 daemon
- Hibernate的初体验
- 垃圾收集趣史
- .NET上根据字符串动态创建控件
- 我的爱人
- VS2005/2008中 LC.exe”已退出,代码为 -1 解决方法
- DOS无法识别NTFS格式导入
- 解决Windows vista 开启ACHI模式的问题
- 读书日志(宗教历史)
- .NET设计模式(22):策略模式(Strategy Pattern)