zoukankan      html  css  js  c++  java
  • j2ee之hibernate工具类

    package com.newtouch.utils;

    import org.hibernate.*;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.orm.hibernate4.support.HibernateDaoSupport;
    import org.springframework.stereotype.Component;

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

    /**
    * 工具类实例化
    *
    * @author 邵欣
    * @version 1.0
    * @project_name Personnel_Management_System
    * @package_name com.newtouch.utils
    * @class_name MyJdbcUtils
    * @company 新致软件
    * @time 2017年9月2日 上午10:30:10
    */
    @Component("myJdbcUtils")
    public class MyJdbcUtils extends HibernateDaoSupport {
    /**
    * 属性
    *
    * @param sessionFactory void
    * @author 邵欣
    * @time 2017年9月2日上午10:30:25
    */
    @Autowired
    public void setSessionFactoryOverride(SessionFactory sessionFactory) {
    super.setSessionFactory(sessionFactory);
    }

    /**
    * 保存或者修改这个对象所包含的数据
    *
    * @param entity void
    * @author 邵欣
    * @time 2017年9月2日下午8:57:23
    */
    public void saveOrUpdate(Object entity) {
    Session session = null;
    Transaction ts = null;
    try {
    session = this.getHibernateTemplate().getSessionFactory().openSession();
    ts = session.beginTransaction();
    session.saveOrUpdate(entity);
    ts.commit();
    } catch (Exception e) {
    e.printStackTrace();
    ts.rollback();
    } finally {
    session.close();
    }
    }

    /**
    * 查询一组数据
    *
    * @param sql
    * @param obj
    * @return List<?>
    * @author 邵欣
    * @time 2017年9月2日下午9:02:08
    */
    @SuppressWarnings("unchecked")
    public <T> List<T> find(String sql, Object... values) {
    Session session = this.getHibernateTemplate().getSessionFactory().openSession();
    Query queryObject = session.createQuery(sql);
    if (values != null) {
    for (int i = 0; i < values.length; i++) {
    queryObject.setParameter(i, values[i]);
    }
    }
    return queryObject.list();
    }

    /**
    * 查找指定的一条数据
    *
    * @param sql
    * @param obj
    * @return T
    * @author 邵欣
    * @time 2017年9月2日下午9:14:59
    */
    @SuppressWarnings("unchecked")
    public <T> T findAEntity(String sql, Object... values) {
    Session session = this.getHibernateTemplate().getSessionFactory().openSession();
    Query queryObject = session.createQuery(sql);
    if (values != null) {
    for (int i = 0; i < values.length; i++) {
    queryObject.setParameter(i, values[i]);
    }
    }
    List<T> list = queryObject.list();
    if (list.size() > 0) {
    return (T) list.get(0);
    } else {
    System.out.println("数据库中没有这条数据");
    return null;
    }
    }

    /**
    * 根据id查找对象
    *
    * @param clazz
    * @param id
    * @return T
    * @author 邵欣
    * @time 2017年9月2日下午9:14:22
    */
    public <T> T get(Class<T> clazz, Serializable id) {
    return this.getHibernateTemplate().get(clazz, id);
    }

    /**
    * 分页查询的数据
    *
    * @param sql
    * @param startNumber
    * @param pageCount
    * @return List<T>
    * @author 邵欣
    * @time 2017年9月2日下午9:41:03
    */
    @SuppressWarnings("unchecked")
    public <T> List<T> pageSelect(String sql, int startNumber, int pageCount) {
    Session session = this.getHibernateTemplate().getSessionFactory().openSession();
    Query query = session.createQuery(sql);
    query.setFirstResult(startNumber);
    query.setMaxResults(pageCount);
    return query.list();
    }

    /**
    * 分页查询的总行数
    *
    * @param sql
    * @param startNumber
    * @param pageCount
    * @return int
    * @author 邵欣
    * @time 2017年9月2日下午9:40:49
    */
    public int totalPageCount(String sql, int startNumber, int pageCount) {
    Session session = this.getHibernateTemplate().getSessionFactory().openSession();
    Query query = session.createQuery(sql);
    ScrollableResults scroll = query.scroll();
    scroll.last();
    int totalCount = scroll.getRowNumber() + 1;
    return totalCount;
    }

    /**
    * 删除一条数据(不建议使用)
    *
    * @param object void
    * @author 邵欣
    * @time 2017年9月2日下午10:02:09
    */
    public void delete(Object object) {
    Session session = this.getHibernateTemplate().getSessionFactory().openSession();
    Transaction tx = session.beginTransaction();
    session.delete(object);
    tx.commit();
    session.close();
    }


    }
  • 相关阅读:
    java线程上
    java常用类
    java面向对象4
    java 面向对象三
    java面向对象下
    java面向对象
    java基础下
    Java之Stream流
    JAVA泛型
    英语
  • 原文地址:https://www.cnblogs.com/ShaoXin/p/7476844.html
Copyright © 2011-2022 走看看