hibernateDao整理(未整合spring)
来源:互联网 发布:vba数据录入 编辑:程序博客网 时间:2024/06/16 19:22
项目中老是用到这些,先自己封装一个没有整合spring的
接口类
package com.liu.test.hibernate;import java.util.List;/** * 单纯hibernate查询封装 * * @author liuzhenfeng * */public interface HibernateDao {/** * 查询实体 * * @param <T> * @param entityClass * 实体CLASS * @return LIST集合 */public <T> List<T> queryEntity(Class<T> entityClass);/** * and多条件查询 * * @param <T> * @param entityClass * 实体CLASS * @param str * 条件字段 * @param obj * 条件数据 * @return LIST集合 */public <T> List<T> queryAndEntity(Class<T> entityClass, String[] str,Object[] obj);/** * in条件查询 * * @param <T> * @param entityClass * 实体CLASS * @param str * 条件字段 * @param obj * 条件数据 * @return LIST集合 */public <T> List<T> queryInEntity(Class<T> entityClass, String str,Object[] obj);/** * 单条件查询 * * @param <T> * @param entityClass * 实体CLASS * @param str * 查询字段 * @param obj * 字段数据 * @return LIST集合 */public <T> List<T> queryEntity(Class<T> entityClass, String str, Object obj);/** * Or条件查询 注意: 条件查询中的字段和数值要两个以上,如果为一个,请使用单条件查询 * * @param <T> * @param entityClass * 实体CLASS * @param str * 查询字段 * @param obj * 字段数据 * @return LIST集合 */public <T> List<T> queryOrEntity(Class<T> entityClass, String[] str,Object[] obj);/** * 保存实体 * * @param <T> * @param entityClass * 实体类,需要实例,如: Entity entity = new Entity(); saveEntity(entity); */public <T> void saveEntity(T entityClass);/** * 更新实体 * * @param <T> * @param entityClass * 实体类,需要实例,如: Entity entity = new Entity(); * updateEntity(entity); */public <T> void updateEntity(T entityClass);/** * 删除实体 * * @param <T> * @param entityClass * 实体类,需要实例,如: Entity entity = new Entity(); * deleteEntity(entity); */public <T> void deleteEntity(T entityClass);/** * 排序条件条件查询 * * @param <T> * @param entityClass * 实体类 * @param str * 条件字段 * @param obj * 条件数据 * @param orderStr * 排序字段 * @param orderType * 排序的类型 0是降序1是升序 * @return LIST集合 */public <T> List<T> queryEntityByOrder(Class<T> entityClass, String[] str,Object[] obj, String orderStr, int orderType);/** * 分页条件查询 * * @param <T> * @param entityClass * 实体类 * @param str * 条件字段 * @param obj * 条件字段 * @param orderStr * 排序字段 * @param orderType * 排序类型 0是降序1是升序 * @param pageStart * 开始页 * @param pageSize * 页数 * @return LIST集合 */public <T> List<T> queryEntityByPage(Class<T> entityClass, String[] str,Object[] obj, String orderStr, int orderType, int pageStart,int pageSize);/** * 更新或保存,主要解决有些类不能保存的问题,如果主键冲突,即更新 * * @param <T> * @param entityClass * 实体类 */public <T> void saveOrUpdateEntity(Class<T> entityClass);}
实现
package com.liu.test.hibernate;import java.util.List;import org.hibernate.Criteria;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.criterion.DetachedCriteria;import org.hibernate.criterion.Order;import org.hibernate.criterion.Restrictions;import com.liu.test.bean.User;import com.liu.test.util.HibernateUtil;/** * * @author liuzhenfeng * */public class HibernateDaoImpl implements HibernateDao {public static int HIBERNATE_DESC = 0;public static int HIBERNATE_ASC = 1;@SuppressWarnings("unchecked")public <T> List<T> queryEntity(Class<T> entityClass) {Session session = HibernateUtil.currentSession();List<T> list = DetachedCriteria.forClass(entityClass).getExecutableCriteria(session).list();HibernateUtil.closeSession();return list;}@SuppressWarnings("unchecked")public <T> List<T> queryAndEntity(Class<T> entityClass, String[] str,Object[] obj) {Session session = HibernateUtil.currentSession();DetachedCriteria dc = DetachedCriteria.forClass(entityClass);for (int i = 0; i < str.length; i++) {dc.add(Restrictions.eq(str[i], obj[i]));}List<T> list = dc.getExecutableCriteria(session).list();HibernateUtil.closeSession();return list;}@SuppressWarnings("unchecked")public <T> List<T> queryInEntity(Class<T> entityClass, String str,Object[] obj) {Session session = HibernateUtil.currentSession();List<T> list = DetachedCriteria.forClass(entityClass).add(Restrictions.in(str, obj)).getExecutableCriteria(session).list();HibernateUtil.closeSession();return list;}@SuppressWarnings("unchecked")public <T> List<T> queryEntity(Class<T> entityClass, String str, Object obj) {Session session = HibernateUtil.currentSession();List<T> list = DetachedCriteria.forClass(User.class).add(Restrictions.eq(str, obj)).getExecutableCriteria(session).list();HibernateUtil.closeSession();return list;}@SuppressWarnings("unchecked")public <T> List<T> queryOrEntity(Class<T> entityClass, String[] str,Object[] obj) {Session session = HibernateUtil.currentSession();int count = str.length % 2;DetachedCriteria dc = DetachedCriteria.forClass(User.class);if (0 == count) {for (int i = 0; i < str.length / 2; i = i + 2) {dc.add(Restrictions.or(Restrictions.eq(str[i], obj[i]),Restrictions.eq(str[i + 1], obj[i + 1])));}} else if (1 == count) {for (int i = 0; i < (str.length - 3) / 2; i = i + 2) {dc.add(Restrictions.or(Restrictions.eq(str[i], obj[i]),Restrictions.eq(str[i + 1], obj[i + 1])));}dc.add(Restrictions.or(Restrictions.eq(str[str.length - 1],obj[str.length - 1]), Restrictions.or(Restrictions.eq(str[str.length - 2], obj[str.length - 2]), Restrictions.eq(str[str.length - 3], obj[str.length - 3]))));}List<T> list = dc.getExecutableCriteria(session).list();return list;}public <T> void saveEntity(T entityClass) {Session session = HibernateUtil.currentSession();Transaction tx = session.beginTransaction();session.save(entityClass);tx.commit();HibernateUtil.closeSession();}public <T> void updateEntity(T entityClass) {Session session = HibernateUtil.currentSession();Transaction tx = session.beginTransaction();session.update(entityClass);tx.commit();HibernateUtil.closeSession();}public <T> void deleteEntity(T entityClass) {Session session = HibernateUtil.currentSession();Transaction tx = session.beginTransaction();session.delete(entityClass);tx.commit();HibernateUtil.closeSession();}@SuppressWarnings("unchecked")public <T> List<T> queryEntityByOrder(Class<T> entityClass, String[] str,Object[] obj, String orderStr, int orderType) {Session session = HibernateUtil.currentSession();DetachedCriteria dc = DetachedCriteria.forClass(entityClass);for (int i = 0; i < str.length; i++) {dc.add(Restrictions.eq(str[i], obj[i]));}if (orderType == HIBERNATE_DESC) {dc.addOrder(Order.desc(orderStr));} else if (orderType == HIBERNATE_ASC) {dc.addOrder(Order.asc(orderStr));}List<T> list = dc.getExecutableCriteria(session).list();HibernateUtil.closeSession();return list;}@SuppressWarnings("unchecked")public <T> List<T> queryEntityByPage(Class<T> entityClass, String[] str,Object[] obj, String orderStr, int orderType, int pageStart,int pageSize) {Session session = HibernateUtil.currentSession();DetachedCriteria dc = DetachedCriteria.forClass(entityClass);for (int i = 0; i < str.length; i++) {dc.add(Restrictions.eq(str[i], obj[i]));}if (orderType == HIBERNATE_ASC) {dc.addOrder(Order.asc(orderStr));} else if (orderType == HIBERNATE_DESC) {dc.addOrder(Order.desc(orderStr));}Criteria executableCriteria = dc.getExecutableCriteria(session);if (pageStart >= 0) {executableCriteria.setFirstResult(pageStart);}if (pageSize > 0) {executableCriteria.setMaxResults(pageSize);}List<T> list = executableCriteria.list();return list;}public <T> void saveOrUpdateEntity(Class<T> entityClass) {Session session = HibernateUtil.currentSession();Transaction tx = session.beginTransaction();session.saveOrUpdate(entityClass);tx.commit();HibernateUtil.closeSession();}}
- hibernateDao整理(未整合spring)
- HibernateDao
- 【知识整理】Spring整合SpringMVC
- Spring与Memcache整合(原创及优秀memcache整理)
- Apache shiro 笔记整理之整合spring
- spring和redis整合异常整理
- spring整合hibernate Jpa报错整理
- 【知识整理】Spring整合Hibernate详解
- C#技巧(未整理)
- 注册表键值(未整理)
- MFC ui(未整理)
- oracle文档(未整理)
- 文章积累(未整理)
- 预处理器(未整理)
- android 知识点(未整理)
- 工作小记(未整理)
- mybatis配置文件--未和spring整合前,jdbc
- 未整理
- 原码,反码,补码 及 移位运算
- apache装完后显示no service installed
- alter table ** move;
- 办公室战争第一波----谁生气谁输
- 记录用到的wmic语句
- hibernateDao整理(未整合spring)
- Enqueue block
- Oracle 连接出错最常见的原因
- Struts2学习笔记(九)——数据标签
- Launcher壁纸修改
- Irrlicht引擎手册示例(二):Quake3Map!
- 关于UNICODE和_T宏
- Nginx 简单的负载均衡配置示例
- 对 HTTP 304 的理解