`
Evin7
  • 浏览: 2851 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

hibernate 封装

阅读更多
爱的色放阿撒旦法撒旦法是否打算分撒旦Template().getSessionFactory()
.getCurrentSession().createQuery(hql).setCacheable(true);
if (values.length != 0) {
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]);
}
}
List list = query.list();
if (!list.isEmpty() && list.size() != 0) {
return (T) list.get(0);
} else {
throw new ObjectRetrievalFailureException(getEntityClass(),
"object not found");
}
}

@SuppressWarnings("unchecked")
public T getByQbc(Criteria criteria) throws DataAccessException {
List list = criteria.list();
if (!list.isEmpty() && list.size() != 0) {
return (T) list.get(0);
} else {
throw new ObjectRetrievalFailureException(getEntityClass(),
"object not found");
}
}

@SuppressWarnings("unchecked")
public T getByQbcForCache(Criteria criteria) throws DataAccessException {
criteria.setCacheable(true);
List list = criteria.list();
if (!list.isEmpty() && list.size() != 0) {
return (T) list.get(0);
} else {
throw new ObjectRetrievalFailureException(getEntityClass(),
"object not found");
}
}

/**
* 查询总记录数
*
* @param countString
* @return int
* @throws DataAccessException
*/
protected int count(final String countString) throws DataAccessException {
return Integer.valueOf(String.valueOf((getHibernateTemplate().find(
countString).get(0))));
}

/**
* 去除select 子句,未考虑union的情况
*/
protected static String removeSelect(String hql) {
Assert.hasText(hql);
int beginPos = hql.toLowerCase().indexOf("from");
Assert.isTrue(beginPos != -1, " hql : " + hql
+ " must has a keyword 'from'");
return hql.substring(beginPos);
}

/**
* 去除orderby 子句
*/
protected static String removeOrders(String hql) {
Assert.hasText(hql);
Pattern p = Pattern.compile("order\\s*by[\\w|\\W|\\s|\\S]*",
Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(hql);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "");
}
m.appendTail(sb);
return sb.toString();
}

@SuppressWarnings("unchecked")
public List<T> findByQbc(Criteria criteria) throws DataAccessException {
return criteria.list();
}

@SuppressWarnings("unchecked")
public List<T> findByQbcForCache(Criteria criteria)
throws DataAccessException {
criteria.setCacheable(true);
return criteria.list();
}

@SuppressWarnings("unchecked")
public List<T> getByNativeSql(String sql) throws DataAccessException {
List<T> list = getHibernateTemplate().getSessionFactory()
.getCurrentSession().createSQLQuery(sql).addEntity(
getEntityClass()).list();
return list;
}
}
分享到:
评论

相关推荐

    使用hibernate封装方法

    标题“使用Hibernate封装方法”暗示我们将讨论如何在项目中通过封装Hibernate操作,以提高代码的复用性和可读性。通常,我们会在DAO(数据访问对象)层进行这些封装,将数据库的CRUD(创建、读取、更新、删除)操作...

    Hibernate封装dao层

    "Hibernate封装DAO层"就是将Hibernate的功能整合到DAO设计模式中,以实现更加高效、规范的数据库操作。 1. **DAO设计模式**: DAO模式是软件设计模式的一种,它的核心思想是创建一个独立于具体数据库操作的对象,...

    SpringSide的Hibernate封装

    SpringSide的Hibernate封装是针对Spring和Hibernate整合时的一种优化实践,旨在提高开发效率和代码的可维护性。它通过三层封装来实现对Hibernate操作的便捷和类型安全。 第一层是HibernateGenericDao,它是基于...

    小码哥Hibernate封装的查询方法的皮毛介绍共4页.p

    【标题】:“小码哥Hibernate封装的查询方法的皮毛介绍共4页.p” 【描述】:“小码哥Hibernate封装的查询方法的皮毛介绍共4页.pdf.zip”这个压缩包文件内包含了一份关于Hibernate封装查询方法的初步介绍,由知名...

    hibernate封装.pdf

    在提供的代码片段中,我们可以看到一个`HibernateDao`类,它是对Hibernate的一些基本操作进行了封装,包括获取、删除等方法。下面将详细解释这些知识点。 1. **SessionFactory**: `SessionFactory`是Hibernate的...

    基于hibernate封装的BaseDao

    基于hibernate封装的BaseDao,有完整的增删改查,分页,执行hql sql 方法 约 20个方法,详情地址 https://blog.csdn.net/qq_41861261/article/details/85595872

    jquery easyui +struts2+hibernate封装的crud datalist(内置数据库建表语句)

    标题中的"jQuery EasyUI + Struts2 + Hibernate 封装的 CRUD Datagrid(内置数据库建表语句)"是一个基于Web开发的技术组合,用于构建数据管理应用。这个项目结合了前端的jQuery EasyUI、后端的Struts2框架以及持久...

    hibernate环境搭建基本操作封装

    本文将详细介绍如何进行Hibernate环境搭建,以及如何进行基本操作的封装,我们将以MySQL开源数据库作为数据存储后端。 一、Hibernate环境搭建 1. **安装MySQL数据库**: 首先,你需要在本地或者服务器上安装MySQL...

    HibernateUtil 分页 增删改查 封装

    HibernateUtil 分页 增删改查 封装 HibernateUtil 分页 增删改查 封装 HibernateUtil 分页 增删改查 封装

    解决在同一项目中Hibernate与Mybatis共存的问题的解决方案.docx

    Hibernate封装了很多有用的API给开发者,降低了操作数据库的难度和复杂度,同时也减少了模板代码的数量,但Hibernate留给开发者可操作的空间相对Mybatis少了很多。 Mybatis框架使用起来很灵活,开发者可以自定义查询...

    封装了一个Hibernate增删改查的工具类

    本篇将详细介绍一个基于Hibernate封装的增删改查工具类,该工具类整合了util、comm.util以及beanutils等库,旨在提高开发效率,降低代码复杂度,方便开发者快速地获取session和sessionFactory。 首先,让我们理解...

    类似hibernate的jdbc封装

    标题提到的"类似hibernate的jdbc封装"就是这样的一个实践,它试图在不引入庞大框架的情况下,提供类似Hibernate的便捷性。 首先,我们来了解JDBC(Java Database Connectivity),它是Java中用于连接数据库的标准...

    hibernate将本地SQL查询结果封装成对象

    本文将深入探讨如何使用Hibernate将本地SQL查询的结果封装成对象。 首先,本地SQL查询(Native SQL)是指直接在Hibernate中使用原生的SQL语句进行查询,而不是使用HQL(Hibernate Query Language)。这允许开发者...

    hibernate增删改查

    《Hibernate的增删改查操作详解》 在Java Web开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本文将深入探讨Hibernate如何进行增删改查(CRUD)操作,旨在帮助开发者更好地理解...

    Hibernate更新某些字段

    Hibernate 更新某些字段 Hibernate 是一个基于 Java 的 ORM 框架,它提供了对数据库的操作接口。在实际开发中,我们经常需要更新数据库中的某些字段,而不是所有字段。那么,如何使用 Hibernate 实现更新某些字段呢...

    hibernate公共查询

    公共查询类在Hibernate应用中起着关键作用,它封装了常见的查询操作,提高代码的复用性,降低代码冗余。 1. **配置Hibernate**:在使用Hibernate之前,我们需要进行基本的配置,包括创建`hibernate.cfg.xml`配置...

    对hibernate的封装 HibernateTemplate

    **标题:“对hibernate的封装 HibernateTemplate”** 在Java Web开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。然而,直接使用Hibernate API进行数据库操作可能...

    Hibernate操作数据库的方法

    使用Hibernate,开发者无需直接使用JDBC API,因为Hibernate封装了大部分数据库操作的细节,从而可以减少重复代码,提高开发效率。 Hibernate操作数据库时,主要通过以下几个核心组件来实现持久层操作: 1. **...

    Hibernate、Spring和Struts工作原理及使用理由

    - **简化数据访问层**:Hibernate封装了JDBC,减少了很多重复的数据库操作代码。 - **ORM(对象关系映射)**:提供了对象和数据库表之间的映射,使开发者可以使用面向对象的方式来操作数据库。 - **反射机制**:利用...

Global site tag (gtag.js) - Google Analytics