Hibernate中进行数据库增删改的代码,太多不想背了,记在这里以后来查好啦~~~~



package org.lxh.hibernate.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 ;
    }

}

posted on 2008-01-29 11:38  超少  阅读(308)  评论(4编辑  收藏  举报