Hibernate之单表类型数据处理泛型类

package chengfei.hibernate.Dao;

import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import chengfei.hibernate.tool.HibernateUtils;

/**hibernate数据库操作泛型类
* @author Administrator
* @param <T>
*/
public class service<T> {

private Class<T> c;

public service(Class<T> c) {
this.c = c;
}

/**保存
* @param t
*/
public void save(T t) {
Session session = HibernateUtils.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.save(t);
tx.commit();

} catch (HibernateException e) {
tx.rollback();
throw e;
} finally {
session.close();
}
}

/**删除
* @param id
*/
public void delete(Integer id) {
Session session = HibernateUtils.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
T t = this.getById(id);
session.delete(t);
tx.commit();
} catch (HibernateException e) {
tx.rollback();
throw e;
} finally {
session.close();
}

}

/**更新
* @param t
*/
public void update(T t) {
Session session = HibernateUtils.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.update(t);
tx.commit();
} catch (HibernateException e) {
tx.rollback();
throw e;
} finally {
session.close();
}

}

/**得到唯一对象
* @param id
* @return
*/
@SuppressWarnings("unchecked")
public T getById(Integer id) {
Session session = HibernateUtils.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
T t = (T) session.get(c, id);
tx.commit();
return t;
} catch (HibernateException e) {
tx.rollback();
throw e;
} finally {
session.close();
}
}

/**获得所有
* @return
*/
@SuppressWarnings("unchecked")
public List<T> FindAll() {
Session session = HibernateUtils.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
List<T> list = session.createQuery("from " + c.getSimpleName())
.list();
tx.commit();
return list;
} catch (HibernateException e) {
tx.rollback();
throw e;
} finally {
session.close();
}
}

/**获得分页的数据
* @param firstResult
* @param maxresult
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public QueryResult FindAll(int firstResult, int maxresult) {
Session session = HibernateUtils.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
List<T> list = session.createQuery(//
"from " + c.getSimpleName())//
.setFirstResult(firstResult)//
.setMaxResults(maxresult).list();
tx.commit();
Long count = (Long) session.createQuery(
"select count(*) from " + c.getSimpleName())//
.uniqueResult();
return new QueryResult(list, count.intValue());
} catch (HibernateException e) {
tx.rollback();
throw e;
} finally {
session.close();
}

}

}

时间: 2024-10-13 12:14:18

Hibernate之单表类型数据处理泛型类的相关文章

【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 前面两篇博客已经将Hibernate的基础知识讲解得差不多了,差不多到写实例的时候了. 本篇只用hibernate进行单表的增删改查. 应用Hibernate,对students表进行增删改查. service层和DAO层,我都是直接写实现类了(因为这里主要是演示一下Hibernate的使用),如果是开发项目,注意一定要写接口! 准备数据库: 首先准备一个students表: cr

hibernate学习---单表查询

我们都知道SQL是非常强大的,为什么这么说呢?相信学过数据库原理的同学们都深有体会,SQL语句变化无穷,好毫不夸张的说可以实现任意符合我们需要的数据库操作,既然前面讲到Hibernate非常强大,所以Hibernate也是能够实现SQL的一切数据库操作. 在SQL中,单表查询是最常用的语句,同理Hibernate最常用到的也是查询语句,所以今天就来讲讲Hibernate的单表查询: 今天要将的内容分以下几点: 查询所有 查询结果排序 为查询参数动态赋值 分页查询 模糊查询 唯一性查询 聚合函数查

Hibernate单表操作(三)——对象类型

转载请注明:http://blog.csdn.net/uniquewonderq 对象类型: Mysql不支持标准SQL的CLOB类型,在Mysql中使用TEXT,MEDIUMTEXT及LONGTEXT类型来表示长度超过 255的长文本数据. 下面看一个例子来演示: @Test public void testWriteBlob() throws Exception {//写入二进制数据 Students s=new Students(6,"wonderq","男"

Hibernate学习笔记(一)--&gt;数据库单表操作

Hibernate框架是一个全ORM映射框架,是一个非常流行的数据库操作框架之一,现在比较流行的还有MyBatis半ORM映射框架 在MyEclipse IDE开发工具中,可以很轻松的搭建Hibernate框架. 一.搭建一个项目 1.首先在MyEclipse中搭建一个web项目. 2.选中项目右键-->myeclipse-->Project Facets-->找到hibernate.这样就为项目添加了hibernate支持 3.打开hibernate.cfg.xml配置文件,在可视化编

hibernate单表映射

什么是Hibernate? ORM:object relationship mapping对象关系映射 hibernate是java领域的一款开源的ORM框架技术. hibernate是对jdbc进行了非常轻量级的对象封装. 1.开发工具:Eclipse Standard Kepler Hibernate Tools for eclipse Plugins Hibernate Tools是由JBoss推出的一个Eclipse综合开发工具插件,该插件可以简化ORM框架Hibernate,以及JBo

【Hibernate】(3)Hibernate单表操作

1. 单一主键 这个是在我们生成的Student.hbm.xml中配置的: <hibernate-mapping> <class name="com.thr.bean.Student" table="STUDENT"> <id name="id" type="int"> <column name="ID" /> <generator class=&quo

Hibernate继承(1)单表继承

代码: package bean; import java.util.Date; public class Person { private Integer id; private String name; private int password; private Date birthday; public Person() { } @Override public String toString() { return "Person [id=" + id + ", nam

Hibernate初探之单表映射

http://www.imooc.com/video/7816 1.什么是ORM?为什么使用Hibernate? 对象关系映射:为了少写和底层数据库相关的sql语句,方便程序的维护.修改,提高跨平台性和可扩展性.Hibernate是Java领域内的一款技术成熟稳定的ORM框架 2.Hibernate开发的基本步骤? (1)编写配置文档hibernate.cfg.xml (2)编写实体类.注意:每一个实体类都要与数据库中的一张表一一对应,实体类的编写要遵循JavaBean的要求. (3)生成对应实

Hibernate在配置表映射文件时cascade的类型及意义

当关联双方存在父子关系,就可以在 set 处设定 cascade 为 all-delete-orphan 所谓父子关系,即指由父方控制子方的持久化圣明周期,子方对象必须和一个父方对象关联.如果删除父方对象,应该级联删除所有关联的子方对象:如果一个子方对象不再和一个父方对象关联,应该把这个子方对象删除. all-deleteorphan 的能力: 1. 当保存或更新父方对象时,级联保存或更新所有关联的子方对象,相当于 cascade 为 save-update 2. 当删除父方对象时,级联删除所有