Hibernate 基本数据操作(增删改查)

package com.sunyard.DBO;

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;

import com.sunyard.bean.Person;

/*
* 具体操作Hibernate的类
* 增加、删除、修改、按ID查询、模糊查询、查询全部操作
*/
public class PersonDBO {
   
   
//在Hibernate中,所有的操作都是在Session中完成
   
//此Session不同于JSP中的Session
    private Session session=null;
    
   
//在构造方法中实例化Session对象
    public PersonDBO(){
       
//找到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();
       
this.session.close();
    }
   
   
//更改
    public void update(Person p){
       
//打开事务
        Transaction tran=this.session.beginTransaction();
       
//执行插入语句
        this.session.update(p);
       
//提交事务
        tran.commit();
       
this.session.close();
    }
   
   
//按ID查询 推荐用HQL
    public Person queryById(String id){
        Person p
=null;
       
//使用Hibermate查询语句
        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();
        }
       
this.session.close();
       
return p;
    }
   
   
//删除1
   
//使用此方法删除数据之前,必须先查找到数据对象,性能会打折
    public void delete(Person p){
       
//打开事务
        Transaction tran=this.session.beginTransaction();
       
//执行插入语句
        this.session.delete(p);
       
//提交事务
        tran.commit();
       
this.session.close();
    }
   
   
//根据HQL的语句进行了修改,增加了删除指令
    public void delete(String id){
       
        Transaction tran
=this.session.beginTransaction();
        String hql
="delete Person where id=?";
        Query q
=this.session.createQuery(hql);
       
//设置参数
        q.setString(0, id);
       
//执行更新语句
        q.executeUpdate();
        tran.commit();
       
this.session.close();
    }
   
   
//查询全部数据,写HQL
    public List queryALL(){
        List l
=null;
        String hql
="from Person as p";
        Query q
=this.session.createQuery(hql);
        l
=q.list();
       
this.session.close();
       
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();
       
this.session.close();
       
return l;
    }
   
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值