CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。
简单理解为数据库的增删查改操作。
下面是自己写的一个hibernate工具类,实现CRUD操作,很实用。
import java.io.Serializable;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
/**
* 工具类
*/
@SuppressWarnings("rawtypes")
public class HibernateUtils {
// 静态成员变量,方便调用
private static SessionFactory sessionFactory;
// 私有的构造方法
private HibernateUtils() {
}
// 静态 创建session工厂
static {
Configuration cfg = new Configuration().configure();
sessionFactory = cfg.buildSessionFactory();
}
// 静态方法,获得session
private static Session getSession() {
return sessionFactory.openSession();
}
/**
* 修改(修改前需把对象查询出来)
*
* @param obj
* 需要保存的对象
*/
public static void updateObj(Object obj) {
Session session = null;
Transaction tr = null;
try {
// 获取session
session = getSession();
// 开启事务
tr = session.beginTransaction();
// 执行修改操作
session.update(obj);
// 提交事务
tr.commit();
} catch (Exception e) {
tr.rollback();
} finally {
closeSession(session);
}
}
/**
* 查询集合
*
* @param hql
* HQL语句
*/
public static List retrieveToListByHql(String hql) {
Session session = null;
List list = null;
try {
session = getSession();
Query q = session.createQuery(hql);
list = q.list();
} catch (Exception e) {
} finally {
closeSession(session);
}
return list;
}
/**
* 查询单个对象
*
* @param clasz
* 要查询的对象类
* @param id
* 查询id
*/
@SuppressWarnings("unchecked")
public static Object retrieveToObjById(Class clasz, Object id) {
Session session = null;
Object obj = null;
try {
session = getSession();
obj = session.get(clasz, (Serializable) id);
} catch (Exception e) {
} finally {
closeSession(session);
}
return obj;
}
/**
* 删除
*
* @param obj
* 要删除的对象
*/
public static void deleteObj(Object obj) {
Session session = null;
Transaction tr = null;
try {
session = getSession();
tr = session.beginTransaction();
session.delete(obj);
tr.commit();
} catch (Exception e) {
} finally {
closeSession(session);
}
}
/**
* 保存方法
*
* @param obj
* 需要保存的对象
*/
public static void createObj(Object obj) {
Session session = null;
Transaction tr = null;
try {
session = getSession();
tr = session.beginTransaction();
session.save(obj);
tr.commit();
} catch (Exception e) {
tr.rollback();
} finally {
closeSession(session);
}
}
/**
* 执行HQL语句
*
* @param obj
* HQL语句
*/
public static void excuteHql(String hql) {
Session session = null;
Transaction tr = null;
try {
session = getSession();
tr = session.beginTransaction();
session.createQuery(hql).executeUpdate();
tr.commit();
} catch (Exception e) {
tr.rollback();
} finally {
closeSession(session);
}
}
// 关闭session的公共方法
private static void closeSession(Session session) {
if (session != null) {
session.close();
}
}
}