hibernate简单工具类的封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate简单工具类的封装相关的知识,希望对你有一定的参考价值。

通过该工具类可以获得hibernate的session对象,并在项目中使用该工具

public class HibernateUtil  
{  
  private static SessionFactory sessionFactory; 

  //表示构造方法私有化,保证单例模式
  private MyHibernateSessionFactory(){
        
  }  
    
 /** 
 * @return 获取会话工厂 
 */  
  public static SessionFactory getSessionFactory()  
  {  
    if(sessionFactory ==null){
    //第一步:读取Hibernate的配置文件  hibernamte.cfg.xml文件  
    Configuration con=new Configuration().configure();  
    //第二步:创建服务注册构建器对象,通过配置对象中加载所有的配置信息  
    ServiceRegistryBuilder regbulider=new ServiceRegistryBuilder().applySettings(con.getProperties());  
    //创建注册服务  
    ServiceRegistry reg=regbulider.buildServiceRegistry();  
    //第三步:创建会话工厂  
    SessionFactory sessionFactory=con.buildSessionFactory(reg);  
    return sessionFactory;
    }else {
        return sessionFactory;
    }
    
  }
}

 

简单使用:

public boolean usersLogin(Users u) {
        
        Transaction tx=null;
        String hql="";
        try {
            Session session = MyHibernateSessionFactory.getSessionFactory()
                    .getCurrentSession();
            hql = "from Users where username=? and password=?";
            tx =session.beginTransaction();
            Query query = session.createQuery(hql);
            query.setParameter(0, u.getUsername());
            query.setParameter(1, u.getPassword());
            List list = query.list();
            tx.commit();
            if(list.size() > 0){
                return true;
            }else {
                return false;
            }
            
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }finally{
            if(tx != null){
                tx = null;
            }
        }
    }

 

以上是关于hibernate简单工具类的封装的主要内容,如果未能解决你的问题,请参考以下文章

hibernate工具类

Hibernate和MyBatis的区别

回归 | js实用代码片段的封装与总结(持续更新中...)

一个队asp.net session进行了再次封装的C#类的代码

Dbutils工具类的使用

Mybatis和hibernate的优缺点比较