Hibernate的复杂用法HibernateCallback
来源:互联网 发布:java compareto() 编辑:程序博客网 时间:2024/05/21 11:24
HibernateTemplate提供了非常多的常用方法来完成数据库的基本操作,使得持久层访问摸板化,只要创建HibernateTemplate 实例后,注入一个SessionFactory的引用就可以了.无须手动创建sessionFactory,更加智能的管理Hibernate 的Session,没有大量的try/catch操作,
void delete(Object entity)删除指定持久化实例
deleteAll(Collection entities)删除集合内全部持久化实例
find(String queryString)根据HQL查询字符串返回实例集合
findByNamedQuery(Striing QueryName)根据命名查询返回实例集合
Get(Class entityClass,Serializable id)割据主键加载特定持久化类的实例
save(Object entity)保存实例 saveOrUpdate(Object entity)
根据实例状态,选择保存或者更新 update(Object entity)更新实例的状态
setMaxResults(int maxResults)设置分页大小
Hibernate的复杂用法HibernateCallback ,HibernateTemplate还提供一种更加灵活的方式来操作数据库,通过这种方式可以完全使用Hibernate的操作方式。
HibernateTemplate的灵活访问方式是通过如下两个方法完成:
(1)Object execute(HibernateCallback action)
(2)List execute(HibernateCallback action)
这两个方法都需要一个HibernateCallback的实例,HibernateCallback实例可在任何有效的Hibernate数据访问中使用。 程序开发者通过HibernateCallback,可以完全使用Hibernate灵活的方式来访问数据库,解决Spring封装Hibernate后灵活性不足的缺陷。 HibernateCallback是一个接口,该接口只有一个方法doInHibernate(org.hibernate.Session session), 该方法只有一个参数Session。
通常,程序中采用实现HibernateCallback的匿名内部类来获取HibernateCallback的实例, 方法doInHibernate的方法体就是Spring执行的持久化操作。
做分页:
- public List findByPage(final String hql, final int offset, final int pageSize)
- { //通过一个HibernateCallback对象来执行查询
- List list = getHibernateTemplate() .executeFind(new HibernateCallback() {
- //实现HibernateCallback接口必须实现的方法
- public Object doInHibernate(Session session) throws HibernateException, SQLException {
- //执行Hibernate分页查询
- List result = session.createQuery(hql) .setFirstResult(offset) .setMaxResults(pageSize) .list(); return result;
- }
- });
- return list; }
- /** * 使用hql语句进行分页查询
- * @param hql 需要查询的hql语句
- * @param value 如果hql有一个参数需要传入,value就是传入hql语句的参数
- * @param offset 第一条记录索引 * @param pageSize 每页需要显示的记录数
- * @return 当前页的所有记录 */
- public List findByPage(final String hql , final Object value , final int offset, final int pageSize)
- { //通过一个HibernateCallback对象来执行查询
- List list = getHibernateTemplate() .executeFind(new HibernateCallback()
- {
- //实现HibernateCallback接口必须实现的方法
- public Object doInHibernate(Session session) throws HibernateException, SQLException {
- //执行Hibernate分页查询
- List result = session.createQuery(hql)
- //为hql语句传入参数 .setParameter(0, value) .setFirstResult(offset) .setMaxResults(pageSize) .list();
- return result;
- }
- });
- return list; }
- /** * 使用hql语句进行分页查询
- * @param hql 需要查询的hql语句
- * @param values 如果hql有多个个参数需要传入,values就是传入hql的参数数组
- * @param offset 第一条记录索引
- * @param pageSize 每页需要显示的记录数
- * @return 当前页的所有记录 */
- public List findByPage(final String hql, final Object[] values, final int offset, final int pageSize) {
- //通过一个HibernateCallback对象来执行查询
- List list = getHibernateTemplate() .executeFind(new HibernateCallback() {
- //实现HibernateCallback接口必须实现的方法
- public Object doInHibernate(Session session) throws HibernateException, SQLException {
- //执行Hibernate分页查询
- Query query = session.createQuery(hql);
- //为hql语句传入参数
- for (int i = 0 ; i < values.length ; i++) {
- query.setParameter( i, values[i]); }
- List result = query.setFirstResult(offset) .setMaxResults(pageSize) .list(); return result;
- }
- });
- return list;
- }
- }
- Hibernate的复杂用法HibernateCallback
- Hibernate的复杂用法HibernateCallback
- Hibernate的复杂用法HibernateCallback
- Hibernate的复杂用法HibernateCallback
- Hibernate的复杂用法HibernateCallback
- Hibernate的复杂用法HibernateCallback
- Hibernate的复杂用法HibernateCallback
- Hibernate的复杂用法HibernateCallback
- HibernateCallback的用法
- Spring中HibernateCallback的用法
- HibernateDaosupport,HibernateCallback,HibernateTemplate的用法
- 关于Hibernate中HibernateCallback()的回调
- 基于hibernate的HibernateCallback分页技术
- Spring中HibernateCallback()的用法
- 关于Hibernate中的HibernateCallback
- spring 对于hibernate操作的封装 HibernateCallback接口的学习
- 实现自己的HibernateCallBack
- 实现自己的HibernateCallBack
- supervisor设置环境变量
- leetcode350
- 10个实用的但偏执的Java编程技术
- 1、线性表
- 【Mybatis】数据插入数据库时,获取自增主键
- Hibernate的复杂用法HibernateCallback
- 蓝牙 宽带通话 (wide band speech)WBS 剖析(一) -- profile层
- 集合
- [通知]实验检查
- mysql复制表结构创建新表
- 我现在在用的前端Web框架或插件
- 互联网推广免费渠道整理
- android 添加新的键值,自定义按键
- android中使用Okhttp进行网络请求的工具类(二)