📄 hibernateservice.java
字号:
/*
* HibernateService.java
*
* Created on 2006年5月5日, 下午7:08
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.```````
*/
package dbservice.hibernate;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.Configuration;
import java.util.List;
/**
*
* @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();
}
}
public static int getRows(String sql) {
int row = 0;
Transaction transaction = null;
Session session = null;
try {
session = HibernateService.getSession();
transaction = session.beginTransaction();
row = ((Integer)session.iterate(sql).next()).intValue();
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;
}
}
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;
}
}
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 + -