Hibernate实现类

package demo01;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/*
 * 具体操作Hibernate的类:
 * 增加、删除、修改、按ID查询、模糊查询、查询全部操作
 * */
public class PersonOperate {
 // 在Hibernate中,所有的操作都是通过Session完成
 // 此Session不同于JSP的Session
 private Session session = null ;
 
 // 在构造方法之中实例化session对象
 public PersonOperate()
 {
  // 找到Hibernate配置
  Configuration config = new Configuration().configure() ;
  // 从配置中取出SessionFactory
  SessionFactory factory = config.buildSessionFactory() ;
  // 从SessionFactory中取出一个Session
  this.session = factory.openSession() ;
 }
 
 // 所有的操作都是通过session进行的
 // 向数据库中增加数据
 public void insert(Person p)
 {
  // 开始事务
  Transaction tran = this.session.beginTransaction() ;
  // 执行语句
  this.session.save(p) ;
  // 提交事务
  tran.commit() ;
  // 关闭Session
  this.session.close() ;
 }
 
 // 修改
 public void update(Person p)
 {
  // 开始事务
  Transaction tran = this.session.beginTransaction() ;
  // 执行语句
  this.session.update(p) ;
  // 提交事务
  tran.commit() ;
 }
 
 // 按ID查询:推荐使用HQL —— 是Hibernate官方推荐的查询语言
 public Person queryById(String id)
 {
  Person p = null ;
  // 使用Hibernate查询语言
  String hql = "FROM Person as p WHERE p.id=?" ;
  // 通过Query接口查询
  Query q = this.session.createQuery(hql) ;
  q.setString(0,id) ;
  List l = q.list() ;
  Iterator iter = l.iterator() ;
  if(iter.hasNext())
  {
   p = (Person)iter.next() ;
  }
  return p ;
 }
 
 // 删除数据
 // Hibernate2、Hibernate 3通用的删除
 // 使用此方法删除数据之前,必须先查找到数据对象,性能呢?
 public void delete(Person p)
 {
  Transaction tran = this.session.beginTransaction() ;
  // 执行语句
  this.session.delete(p) ;
  // 提交事务
  tran.commit() ;
 }
 
 // 在Hibernate 3之中根据HQL中的语句进行了修改,增加了删除指令
 public void delete(String id)
 {
  String hql = "DELETE Person WHERE id=?" ;
  Query q = this.session.createQuery(hql) ;
  // 把参数设置
  q.setString(0,id) ;
  // 执行更新语句
  q.executeUpdate() ;
  // 进行事务处理
  this.session.beginTransaction().commit() ;
 }
 
 // 查询全部数据,写HQL
 public List queryAll()
 {
  List l = null ;
  String hql = "FROM Person as p" ;
  Query q = this.session.createQuery(hql) ;
  l = q.list() ;
  return l ;
 }
 
 // 模糊查询
 public List queryByLike(String cond)
 {
  List l = null ;
  String hql = "FROM Person as p WHERE p.name like ?" ;
  Query q = this.session.createQuery(hql) ;
  q.setString(0,"%"+cond+"%") ;
  l = q.list() ;
  return l ;
 }
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值