hibernate通用方法

最重要的几项方法是Configuration,SessionFactory,Session,Transaction,query。
Configuration 配置
configure()
configure(String resource)
addResource(String resource)导入一个指定位置的映射文件
addClass(Class clazz)导入与指定类同一个包中的以类名为前缀,后缀为.hbm.xml的映射文件
buildSessionFactory()

SessionFactory Session工厂
openSession()
getCurrentSession()
close()

Session 很重要的一个对象
操作对象的方法
save(Object)
update(Object)
delete(Object)
查询的方法
createQuery(String)--> Query
createCriteria(Class)
管理事务的方法
beginTransaction() --> Transaction
getTransaction() --> Transaction获取当前Session中关联的事务对象
其他的方法
...

Transaction 事务
commit()
rollback()

Query 查询
list() 查询一个结果集合。
uniqueResult()查询一个唯一的结果,如果没有结果,则返回null,如果结果有多个,就抛异常。
...
c,sf,s的操作放在hibernateutils中
package myce.casia.db;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
 
public class HibernateUtils {
 
    private static SessionFactory sessionFactory;
 
    static {
    
        sessionFactory = new Configuration()//
                .configure()//
                .buildSessionFactory();
    }
 
    /*
     * 获得一个全局唯一的SessionFactory
     * 
     * @return
     */
 
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
 
    /*
     * 从全局SessionFactory中打开一个Session
     */
    public static Session openSession() {
        return sessionFactory.openSession();
    }
 
    public static void setSessionFactory(SessionFactory sessionFactory) {
        HibernateUtils.sessionFactory = sessionFactory;
    }
 
}
t,以及增删查改的操作放在dao中

package myce.casia.db;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
 

 
/**
 * @author LinDL
 * 
 */
public class KnowledgeAndRelationDao {
 
    public void save(KnowledgeRelation knowledgeRelation) {
        Session session = HibernateUtils.openSession();
        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();
            session.save(knowledgeRelation);
            transaction.commit();
        } catch (RuntimeException e) {
            // TODO: handle exception
            transaction.rollback();
            throw e;
        } finally {
 
        }
        session.close();
    }
 
    public void update(KnowledgeRelation knowledgeRelation) {
        Session session = HibernateUtils.openSession();
        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();
            session.update(knowledgeRelation);
            transaction.commit();
        } catch (RuntimeException e) {
            // TODO: handle exception
            transaction.rollback();
            throw e;
        } finally {
 
        }
        session.close();
    }
 
    public void delete(int id) {
        Session session = HibernateUtils.openSession();
        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();
            KnowledgeRelation knowledgeRelation = (KnowledgeRelation) session.get(KnowledgeRelation.class, id);// 要先获取到实体对象
            session.delete(knowledgeRelation);// 删除的是实体对象
            transaction.commit();
        } catch (RuntimeException e) {
            // TODO: handle exception
            transaction.rollback();
            throw e;
        } finally {
 
        }
        session.close();
    }
 
    /**
     * @param id
     * @return
     */
    public KnowledgeRelation getById(int id) {
        Session session = HibernateUtils.openSession();
        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();
            KnowledgeRelation knowledgeRelation = (KnowledgeRelation) session.get(KnowledgeRelation.class, id);
            transaction.commit();
            return knowledgeRelation;
        } catch (RuntimeException e) {
            // TODO: handle exception
            transaction.rollback();
            throw e;
        } finally {
            session.close();
        }
    }
 
    /**
     * @return
     */
    public List<KnowledgeRelation> findAll() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();
            // 使用HQL查询
            // List<user> all = session.createQuery(from User).list();
            // 使用面向对象的方式查询
            Criteria criteria = session.createCriteria(KnowledgeRelation.class);
            // criteria.add(Restrictions.eq(id, 5));// 添加限制条件,查询id等于5的记录
            // criteria.add(Restrictions.ge(id, 6));//
            // 查询id大于等于6的记录,lt表小于,le表小于等于
            // criteria.addOrder(Order.asc(id));// 添加排序条件
 
            List<KnowledgeRelation> all = criteria.list();
 
            transaction.commit();
            return all;
        } catch (RuntimeException e) {
            // TODO: handle exception
            transaction.rollback();
            throw e;
        } finally {
            session.close();
        }
    }
 
  
   
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值