hibernate HQL查询数据库表中记录的条数

 

/** * Configures and provides access to Hibernate sessions, tied to the * current thread of execution. Follows the Thread Local Session * pattern, see {@link http://hibernate.org/42.html }. */ public class HibernateUtil { /** * Location of hibernate.cfg.xml file. * Location should be on the classpath as Hibernate uses * #resourceAsStream style lookup for its configuration file. * The default classpath location of the hibernate config file is * in the default package. Use #setConfigFile() to update * the location of the configuration file for the current session. */ private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml"; private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); private static Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory; private static String configFile = CONFIG_FILE_LOCATION; static { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err .println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } private HibernateUtil() { } /** * Returns the ThreadLocal Session instance. Lazy initialize * the <code>SessionFactory</code> if needed. * * @return Session * @throws HibernateException */ public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) { if (sessionFactory == null) { rebuildSessionFactory(); } session = (sessionFactory != null) ? sessionFactory.openSession() : null; threadLocal.set(session); } return session; } /** * Rebuild hibernate session factory * */ public static void rebuildSessionFactory() { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err .println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } /** * Close the single hibernate session instance. * * @throws HibernateException */ public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } } /** * return session factory * */ public static org.hibernate.SessionFactory getSessionFactory() { return sessionFactory; } /** * return session factory * * session factory will be rebuilded in the next call */ public static void setConfigFile(String configFile) { HibernateUtil.configFile = configFile; sessionFactory = null; } /** * return hibernate configuration * */ public static Configuration getConfiguration() { return configuration; } }

 

 

/** * <p> * Title: HQL的语句封装类 * </p> * <p> * Description: 该对象封装HQL的查询语句,参数集合,排序参数,分组参数,单页起始地址 * </p> */ public class HQuery { /** * HQL查询语句 */ private String queryString; /** * 参数集合对象 */ private ParasList paralist; /** * 排序字段 */ private String orderby; /** * 分组字段 */ private String groupby; /** * 分页起始查询地址 */ private int pageStartNo; /** * 取得一个Hibernate的Query对象 * * @return:Query对象 */ public String getQueryString() { return queryString; } /** * 设置一个HQL查询字符串 * * @param queryString:查询字符串 * */ public void setQueryString(String queryString) { this.queryString = queryString; } /** * 取得参数集合对象 * * @return:参数集合对象 */ public ParasList getParalist() { return paralist; } /** * 设置参数集合对象 * * @param paralist:参数集合对象 */ public void setParalist(ParasList paralist) { this.paralist = paralist; } /** * 取得排序字段 * * @return:排序字段 */ public String getOrderby() { return orderby; } /** * 设置排序字段 * * @param orderby */ public void setOrderby(String orderby) { this.orderby = orderby; } /** * 取得分组字段 * * @return */ public String getGroupby() { return groupby; } /** * 设置分组字段 * * @param groupby */ public void setGroupby(String groupby) { this.groupby = groupby; } /** * 取得页起始地址 * * @return */ public int getPageStartNo() { return pageStartNo; } /** * 设置页起始地址 * * @param pageStartNo */ public void setPageStartNo(int pageStartNo) { this.pageStartNo = pageStartNo; } }

 

 

 

/** * 获得表中记录的总条数 * * @param hql:HQL查询语句 * @return int 记录的总条数 */ public static int getRows(String hql) { int totalRows = 0; Session session = null; try { session = HibernateUtil.getSession(); Query query = session.createQuery(hql); totalRows = (new Integer(query.uniqueResult().toString())) .intValue(); } catch (Exception e) { e.printStackTrace(); } finally { HibernateUtil.closeSession(); } return totalRows; }

 

 

你可能感兴趣的:(Hibernate,数据库,exception,session,String,null)