package org.zln.hibernate.utils;

 import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import java.io.Serializable; /**
* Created by coolkid on 2015/6/14 0014.
*/
public final class HibernateUtils { private static Configuration configuration = new Configuration();
private static SessionFactory sessionFactory;
private static final String PATH = "hibernate.cfg.xml"; private HibernateUtils(){} static {
/*初始化Hibernate*/
configuration.configure(PATH);
sessionFactory = configuration.buildSessionFactory();
} public static SessionFactory getSessionFactory(){
return sessionFactory;
} public static Session getSession(){
return sessionFactory.openSession();
} public static void add(Object o){
Session session = null;
Transaction transaction = null;
try {
session = HibernateUtils.getSession();
transaction = session.beginTransaction();
session.save(o);
session.flush();
transaction.commit();
}finally {
if (session != null){
session.close();
}
}
} public static void update(Object o){
Session session = null;
Transaction transaction = null;
try {
session = HibernateUtils.getSession();
transaction = session.beginTransaction();
session.update(o);
transaction.commit();
}finally {
if (session != null){
session.close();
}
}
} public static void delete(Object o){
Session session = null;
Transaction transaction = null;
try {
session = HibernateUtils.getSession();
transaction = session.beginTransaction();
session.delete(o);
transaction.commit();
}finally {
if (session != null){
session.close();
}
}
} public static Object getObject(Class clazz,Serializable id){
Object o = null;
Session session = null;
try {
session = HibernateUtils.getSession();
o = session.get(clazz,id);
}finally {
if (session!=null){
session.close();
}
}
return o;
}
}

将CRUD封装到一个工具类中的更多相关文章

  1. Timber(对Log类封装的一个工具)

    Timber(对Log类封装的一个工具) https://blog.csdn.net/hzl9966/article/details/51314137 https://www.jianshu.com/ ...

  2. 用Java开发一个工具类,提供似于js中eval函数功能的eval方法

    今天在看到<Java疯狂讲义>中一个章节习题: 开发一个工具类,该工具类提供一个eval()方法,实现JavaScript中eval()函数的功能--可以动态运行一行或多行程序代码.例如: ...

  3. SpringMVC 中,当前台传入多个参数时,可将参数封装成一个bean类

    在实际业务场景中,当前台通过 url 向后台传送多个参数时,可以将参数封装成一个bean类,在bean类中对各个参数进行非空,默认值等的设置. 前台 url ,想后台传送两个参数,userName 和 ...

  4. java中使用反射做一个工具类,来为指定类中的成员变量进行赋值操作,使用与多个类对象的成员变量的赋值。

    //------------------------------------------------我是代码的分割线 // 首选是一个工具类,在该工具类里面,定义了一个方法,public void s ...

  5. JDBC的增删改写成一个方法,调用一个工具类

    package com.hx.jdbc.connection; import java.sql.Connection; import java.sql.Statement; import com.my ...

  6. 静态工具类中使用注解注入service

    转载:http://blog.csdn.net/p793049488/article/details/37819121 一般需要在一个工具类中使用@Autowired 注解注入一个service.但是 ...

  7. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

  8. Android开发之使用Handler封装下载图片工具类(源码分享)

    假设每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时能够调用. (1)在清单文件加入权限 <us ...

  9. 静态工具类中使用注解注入service实例

    一般需要在一个工具类中使用@Autowired 注解注入一个service.但是由于工具类方法一般都写成static,所以直接注入就存在问题. 使用如下方式可以解决: /** * */ package ...

随机推荐

  1. ABAP术语-Business Connector

    Business Connector 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/27/1016379.html XML-based st ...

  2. round函数在oracle和mysql中用法

    1.oracle和mysql通用方法 #round(字段1,小数位数) 四舍五入select round('11.123456',4);结果:11.1235 2.mysql的另外2种保留小数位数方法# ...

  3. 转:前端安全之XSS攻击

    前端安全 原文链接:https://www.freebuf.com/articles/web/185654.html 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企 ...

  4. css3新样式

    超出两行变省略号 overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-w ...

  5. VSCode插件整理

    VSCode插件整理 VSCode插件整理 官网地址 vscode常用配置(User Settings文件) 基本插件 前端插件 VUE部分 python MarkDown部分 连接Linux 本地与 ...

  6. ctf题目writeup(6)

    2019.2.2 依旧是bugku上面的题目,地址:https://ctf.bugku.com/challenges 1. 解压后是60多个out.zip,都是真加密,里面都是1kb的data.txt ...

  7. Markdown 基本用法

    声明:引自 http://www.cnblogs.com/hnrainll/p/3514637.html ,感谢!   1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置 ...

  8. 2 web服务器:固定返回值

    1.老师给的思路 #tcp socket 服务端 socket = socket.socket() socket.bind() socket.listen() client_socket = sock ...

  9. Java:位移运算符

    Java中有三个位移运算符,用于对int类型整数的二进制补码进行操作: 1. "<<": 左移运算符 在二进制补码末尾添加“0”,之前的其他位相当于左移了一位,可看作成 ...

  10. 利尔达CC3200模块烧写程序笔记

    1. 硬件使用利尔达的CC3200模块,仿真下载器使用利尔达的FTDI仿真器,硬件完全兼容官方的仿真器.仿真器支持IAR的调试,单步运行等操作. 2. 硬件连接接线说明: RXD, TXD, GNG, ...