Hibernate工具类
来源:互联网 发布:cia安装软件 编辑:程序博客网 时间:2024/06/06 14:23
1. 工具类
package com.bjsxt.utils;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* @ClassName:HibernateUtils
* @Description:
* @authormengqx
* @date 2017年8月31日
*/
public class HibernateUtils {
// 创建数据库连接
private static String Config_File ="hibernate.xml";
private static Configuration configuration =null;
private static SessionFactory sessionFactory =null;
// 将session类存放在threadLocal中 ,每一次开session
// 对象的时候,都将session对象放到(set方法)ThreadLocal。
// 使用的时候,使用get方法取出
private static ThreadLocal<Session> tl =new ThreadLocal<>();
// 当类一加载的就读取配置文件进行初始化操作
static {
try {
// 读取配置文件
configuration =new Configuration().configure(Config_File);
// 创建会话工厂
sessionFactory =configuration.buildSessionFactory();
} catch (HibernateExceptione) {
System.out.println("加载失败!");
e.printStackTrace();
}
}
// 为了防止坏人入侵
private HibernateUtils(){}
public static Session getSession() {
// 从ThreadLocal类中取得session对象
Session session = tl.get();
if (session ==null) {
if (sessionFactory !=null) {
// 创建一个session对象
session = sessionFactory.openSession();
// 将session对象存放到ThreadLocal类中
tl.set(session);
returnsession;
}
}
return session;
}
public static void close() {
// 从ThreadLocal类中取得Session对象。
Session session = tl.get();
// 给ThreadLocal类赋值为null。
tl.set(null);
if (session !=null) {
session.close();
}
}
}
测试:
/**
*
* @Description:测试工具类
* @authormengqx
* @date 2017年8月31日
*/
@Test
public void getOne() {
// 获得连接
Session session2 = HibernateUtils.getSession();
Stu stu = (Stu) session2.get(Stu.class, 1);
System.out.println(stu);
HibernateUtils.close();
}
/**
*
* @Description: save--添加,添加的时候:setId(null) update:更新
* @authormengqx
* @date 2017年8月31日
*/
@Test
public void saveOrUpdate(){
Session session2 = HibernateUtils.getSession();
Stu stu = new Stu();
stu.setId(66);
stu.setName("小金牙");
stu.setPwd("888");
// 开启事务
Transaction transaction = session2.beginTransaction();
try {
session2.saveOrUpdate(stu);
transaction.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
transaction.rollback();
}finally{
HibernateUtils.close();
}
}
- Hibernate工具类
- Hibernate工具类
- Hibernate工具类
- Hibernate 的工具类
- Hibernate工具类
- HIbernate工具类
- Hibernate工具类模版
- Hibernate 工具类
- hibernate的工具类
- Hibernate工具类
- Hibernate的工具类
- Hibernate工具类
- Hibernate的工具类
- hibernate分页工具类
- hibernate 操作工具类
- hibernate工具类
- Hibernate工具类
- hibernate连接工具类
- Qt版的Rtsp客户端
- webpack学习记录
- freeMarker 自定义标签
- CSS样式书写规则
- Ubuntu 安装sklearn,numpy,scipy
- Hibernate工具类
- 奥威Power-BI服装行业数据可视化分析-品类销售分析
- IOS开发实践技巧
- linux 权限
- 省级期刊发表费用
- Android Socket连接(模拟心跳包,断线重连,发送数据等)
- 使用线性回归拟合平面最佳直线及预测之Python+sklearn实现
- Java并发编程:volatile关键字解析
- 微信小程序——text文本不能对齐(数字文本无法对齐)