📄 hibernateservice.java
字号:
/*
* HibernateService.java
*
* Created on 2007年7月6日, 下午11:08
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.```````
*/
package com.emis.dbservice.hibernate;
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;
/**
*
* @author Administrator
*/
public class HibernateService {
private static Configuration configuration;
private static SessionFactory sessionFactory;
// Create the initial SessionFactory from the default configuration files
static {
try {
configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static Configuration getConfiguration() {
return configuration;
}
public static void rebuildSessionFactory() {
synchronized(sessionFactory) {
try {
sessionFactory = getConfiguration().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void rebuildSessionFactory(Configuration cfg) {
synchronized(sessionFactory) {
try {
sessionFactory = cfg.buildSessionFactory();
configuration = cfg;
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static Session getSession() {
Session session = null;
try {
session = sessionFactory.openSession();
} catch(Exception e){
e.printStackTrace();
}
return session;
}
public static void close(){
try {
sessionFactory.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void closeSession(Session session) {
try {
if (session != null) {
session.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void rollbackTransaction(Transaction transaction) {
try {
if(transaction != null)
transaction.rollback();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 得到多少行
* @param sql
* @return
*/
public static int getRows(String sql) {
int row = 0;
Transaction transaction = null;
Session session = null;
try {
session = HibernateService.getSession();
transaction = session.beginTransaction();
row = session.createSQLQuery(sql).executeUpdate();
transaction.commit();
}
catch (HibernateException he) {
he.printStackTrace();
HibernateService.rollbackTransaction(transaction);
row = -1;
}
catch (Exception e) {
e.printStackTrace();
row = -1;
}
finally {
HibernateService.closeSession(session);
}
return row;
}
/**
* 传hql语句,得到所有值
* @param hql
* @return
*/
public static List execQuery(String hql) {
List list = null;
Transaction transaction = null;
Session session = null;
try {
session = HibernateService.getSession();
transaction = session.beginTransaction();
list = session.createQuery(hql).list();
System.out.println(hql + " 找到行数:" + list.size());
transaction.commit();
}
catch (HibernateException he) {
he.printStackTrace();
HibernateService.rollbackTransaction(transaction);
list = null;
}
catch (Exception e) {
e.printStackTrace();
list = null;
}
finally {
HibernateService.closeSession(session);
}
return list;
}
/**
* 分页
* @param hql
* @param firstPage
* @param maxSize
* @return
*/
public static List execQuery(String hql, int firstPage, int maxSize) {
List list = null;
Transaction transaction = null;
Session session = null;
try {
session = HibernateService.getSession();
transaction = session.beginTransaction();
Query query = session.createQuery(hql);
query.setFirstResult(firstPage);
query.setMaxResults(maxSize);
list = query.list();
transaction.commit();
HibernateService.closeSession(session);
}
catch (HibernateException he) {
he.printStackTrace();
HibernateService.rollbackTransaction(transaction);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
HibernateService.closeSession(session);
}
return list;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -