封装Hibernate数据库操作方法
来源:互联网 发布:苹果笔记本驱动软件 编辑:程序博客网 时间:2024/06/11 00:07
5.2.4 封装Hibernate数据库操作方法
由于本企业信息管理系统采用Hibernate对数据库进行访问、查询、添加、修改和删除等操作,所以应为每个子系统提供一个封装完善的数据库操作服务类HibernateService。在这个类中,定义了Configuration、SessionFactory等成员变量,还提供了对数据库操作的事务控制,数据库执行SQL语句方法。
public class HibernateService {
定义Configuration、SessionFactory成员变量。Configuration类负责管理Hibernate的配置信息,包括数据库JDBC驱动类、数据库URL、数据库dialect、数据库用户名和密码等信息。SessionFactory类负责创建Session实例,而SessionFactory实例则由Configuration实例创建。
private static Configuration configuration;
private static SessionFactory sessionFactory;
static {
try {
在当前的CLASSPATH路径中寻找hibernate.cfg.xml配置文件,并将配置信息读入内存。
configuration = new Configuration().configure();
由Configuration类实例创建SessionFactory类实例。为后继创建Session类实例作 准备。
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();
}
}
}
1.创建Session类实例
public static Session getSession() {
Session session = null;
try {
session = sessionFactory.openSession();
} catch(Exception e){
e.printStackTrace();
}
return session;
}
2.关闭SessionFactory类实例
public static void close(){
try {
sessionFactory.close();
}catch(Exception e){
e.printStackTrace();
}
}
3.关闭Session类实例
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();
}
}
SQL语句执行方法,该方法返回一个List结果集。
public static List execQuery(String sql) {
List list = null;
Transaction transaction = null;
Session session = null;
try {
session = HibernateService.getSession();
transaction = session.beginTransaction();
list = session.createQuery(sql).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;
}
}
- 封装Hibernate数据库操作方法
- 封装cookie操作方法
- CoreData 基本操作方法封装
- CoreData 基本操作方法封装
- / 封装cookie的操作方法
- 移动端多指操作方法封装
- java 枚举 封装操作方法
- 基于hibernate对数据库操作封装
- IOS学的容易---单例类进行对数据库操作方法的封装(一)
- 封装Android文件基本操作方法
- SQL数据库操作方法
- 数据库操作方法总结
- Oracle数据库分区表操作方法
- Oracle数据库分区表操作方法
- Oracle数据库分区表操作方法
- sybase数据库常用操作方法
- Oracle数据库分区表操作方法
- 数据库的一些操作方法
- 特殊字符转换问题
- TO_DATE()函数
- iptables hashlimit模块介绍(zz)
- 深入了解SQLServer系统数据库工作原理
- 安装
- 封装Hibernate数据库操作方法
- 难以置信 SOA厂商正在消失
- 快速配置OpenSSL
- JTree的常用操作
- 5.25雨 要养成看书的习惯
- 开源软件探寻SOA协同工作
- 我的黄蓉,翁美玲亲笔
- 鼠标移动提示的广告代码
- PHP 替换全角空格出现乱码