`

Hibernate工具类的实现

 
阅读更多
HibernateUtil.java
package com.hibernate.util;

import java.io.Serializable;
import java.util.List;

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


final public class HibernateUtil {
private static SessionFactory sessionFactory;

private HibernateUtil(){}

static{
   Configuration cfg=new Configuration();
   cfg.configure();
   sessionFactory=cfg.buildSessionFactory();
}
/*
* 获取Hibernate SessionFactory
* @return
*/
public static SessionFactory getSessionFactory() {
   return sessionFactory;
}
/*
* 获取Hibernate Session
* @return
*/
public static Session getSession(){
   return sessionFactory.openSession();
}

/*
* 根据Class和id查询查询出一个对象
* @param clazz
* @param id
* @return
*/
public static Object getObject(Class clazz,Serializable id){
   Object object=null;
   Session s=null;
   try {
    s=getSession();
    object=s.get(clazz, id);
   } catch (HibernateException e) {
    System.err.println("Hibernate Get Object Error:\n"+e.getMessage());
    object=null;
   } finally{
    if (s!=null) {
     s.close();
    }
   }
   return object;
}
/*
* 根据hql语句查询出一个对象
* @param hql
* @return
*/
public static Object getObject(String hql){
   Object object=null;
   Session s=null;
   try {
    s=getSession();
    Query query=s.createQuery(hql);
    List list=query.list();
    if (list!=null && list.size()>0) {
     object=list.get(0);
    }
   } catch (Exception e) {
    System.err.println("Hibernate Get Object Error:\n"+e.getMessage());
    object=null;
   }finally{
    if (s!=null) {
     s.close();
    }
   }
   return object;
}
/*
* 查询符合该hql语句的所有对象
* @param hql
* @return
*/
public static List getList(String hql){
   List list=null;
   Session s=null;
   try {
    s=getSession();
    Query query=s.createQuery(hql);
    list=query.list();
   } catch (Exception e) {
    System.err.println("Hibernate Get List Object Error:\n"+e.getMessage());
    list=null;
   }finally{
    if (s!=null) {
     s.close();
    }
   }
   return list;
}

/*
* 增加对象,在数据库里面增加对象
* @param obj
* @return
*/
public static int addObject(Object obj){
   int status=-1;
   Session s=null;
   Transaction ts=null;
   try {
    s=getSession();
    ts=s.beginTransaction();
    s.save(obj);
    ts.commit();
    status=1;
   } catch (HibernateException e) {
    if (ts!=null) {
     ts.rollback();
    }
    System.err.println("Hibernate Insert Object Error:"+e.getMessage());
    status=-1;
   } finally{
    if (s!=null) {
     s.close();
    }
   }
   return status;
}

/*
* 根据对象内容删除对象
* @param obj
* @return
*/
public static int deleteObject(Object obj){
   int status=-1;
   Session s=null;
   Transaction ts=null;
   try {
    s=getSession();
    ts=s.beginTransaction();
    s.delete(obj);
    ts.commit();
    status=1;
   } catch (HibernateException e) {
    if (ts!=null) {
     ts.rollback();
    }
    System.err.println("Hibernate Delete Object Error:\n"+e.getMessage());
    status=0;
   } finally{
    if (s!=null) {
     s.close();
    }
   }
   return status;
}
/*
* 根据类和id删除对象
* @param clazz
* @param id
* @return
*/
public static int deleteObject(Class clazz,Serializable id){
   int status=-1;
   Session s=null;
   Transaction ts=null;
   try {
    s=getSession();
    Object obj=s.get(clazz, id);
    if(obj!=null){
     ts=s.beginTransaction();
     s.delete(obj);
     ts.commit();
     status=1;
    }else{
     status=0;
    }
   } catch (HibernateException e) {
    if (ts!=null) {
     ts.rollback();
    }
    System.err.println("Hibernate Delete Object Error:\n"+e.getMessage());
    status=-1;
   } finally{
    if (s!=null) {
     s.close();
    }
   }
   return status;
}
/*
* 根据对象内容修改对象
* @param obj
* @return
*/
public static int updateObject(Object obj){
   int status=-1;
   Session s=null;
   Transaction ts=null;
   try {
    s=getSession();
    ts=s.beginTransaction();
    s.update(obj);
    ts.commit();
    status=1;
   } catch (HibernateException e) {
    if (ts!=null) {
     ts.rollback();
    }
    System.err.println("Hibernate Update Object Error:\n"+e.getMessage());
    status=-1;
   } finally{
    if (s!=null) {
     s.close();
    }
   }
   return status;
}
}

调用方法:

package com.hibernate.domain;

import java.util.Date;
import com.hibernate.util.HibernateUtil;

public class Base {
public static void main(String[] args){
 
   User user=new User();
   user.setName("word");
   user.setBirthday(new Date());
   HibernateUtil.addObject(user);
 
   User u=getUser(user.getId());
   System.out.println(u);
 
   //System.out.println(user.getId());
   /*
   user=new User();
   user.setName("name");
   user.setBirthday(new Date());
   HibernateExecute.addObject(user);
 
   System.out.println(user.getId());
   */
   System.out.println("end");
}

public static User getUser(int id){
   Class cls=User.class;
   User user=(User)HibernateUtil.getObject(cls, id);
   return user;
}
}


分享到:
评论

相关推荐

    封装了一个Hibernate增删改查的工具类

    一个工具类实现了增删改查 util comm.util beanutils 方便了获取session和sessionFactory

    HIbernate购物车例子,实现增删改查

    HIbernate购物车例子,实现增删改查,包括列表展示 添加 删除 和修改。源代码和工具类。比较详细,一看就懂hibernate.

    通过Hibernate Tool 来生成Java类和HBM文件

    通过Hibernate Tool 来实现通过数据库表自动生成Java类和HBM文件

    hibernate validator jsr303

    Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现

    hibernate核心包

    Hibernate3.jar hibernate核心包 ...javassist-3.9.0.GA.jar 代码生成工具 (Hibernate用它在运行时扩展 Java类和实现,同cglib包) slf4j-api-1.5.8.jar和slf4j-log4j12-1.5.0.jar hibernate使用的一个日志系统

    Hibernate包作用详解

    Hibernate一共包括了23个jar包,令人眼花缭乱。本文将详细讲解Hibernate每个jar包的作用... Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。  commons-logging.jar:

    Hibernate Web应用的开发步骤

    (4)利用Hibernate的第三方工具或Eclipse的有关插件从数据库中创建出相应的实体对象及其ORM映射文件。 (5)创建Hibernate的SessionFactory类。 (6)通过SessionFactory创建Session实例。 (7)通过创建的...

    Struts2和Hibernate框架实现图书管理系统

    6. 创建数据库连接工具类。 7. 设计数据库操作类:UserDao类和BookDao类。UserDao用于实现所有对user表的操作,BookDao用于实现所有对book表的操作。 8. 创建分别对应UserDao类和BookDao类的Action:UserAction和...

    Spring+Spring mvc+Hibernate+Bootstrap、企业级员工信息管理系统

    01. 采用后台及前台的 Spring + Spring mvc + Hibernate + Bootstrap 02. 后台全注解式的开发(除了必要的... 系统中包含了企业中采用的开发工具类的集合 11. AbstractDao 父类实现了Dao中针对单个对象的常用操作

    Hibernate查询练习小例子

    已经建立好了数据库对应的实体类,打开之后直接在项目中练习查询就行。Hibernate和JPA方式都有了。 项目需求: 1. jdk8(因为用到了lambda表达式)。 2. Eclipse或者IDEA开发环境,推荐IDEA,因为我就是用IDEA做的...

    Hibernate+中文文档

    3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA TransactionManagers 9.1. 继承映射特性(Features of inheritance mappings) 16.1. 别名注射(alias injection names) 19.1. ...

    hibernate Demo

    通过一个简单的登陆注册实现hibernate工具类的封装,以及简单的demo调用。

    Struts+Spring+Hibernate实现上传下载(MyEclipse版)

    今天有空我用MyEclipse工具把它重新实现了一边,并增加了一些功能。 <br> <br>所用软件或包的版本: Struts 1.2 Spring 1.2.8 Hibernate 3.1 Oracle 9i MyEclipse4.1.1 <br>具体...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    13.8.12 统计调查结果实现类SetSurveyChildCountImpl.java 13.9 编写网上调查系统的控制器类 13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction...

    List<Map>转化为List工具类

    一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List, Object&gt;&gt;结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()...此工程中就是解决List, Object&gt;&gt;转化为JavaBean工具类实现

    hibernate 教程

    开始Hibernate之旅 1.2. 第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory配置 3.1. 可编程配置方式...

    hibernate3.2中文文档(chm格式)

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    HibernateAPI中文版.chm

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

Global site tag (gtag.js) - Google Analytics