`
jhonnnnnn
  • 浏览: 21787 次
社区版块
存档分类
最新评论

hibernate sql 对象转java对象

阅读更多

修改了一下,增加类型转换。用到了apache的beanutils工具包。

  1. public static <T> List<T> getEntityObjectListByFullSql(
  2. final String fullSql, final Class<T> clzz) throws Exception {
  3. return getHibernateTemplate().execute(
  4. new HibernateCallback<List<T>>() {
  5. @Override
  6. public List<T> doInHibernate(Session session)
  7. throws HibernateException, SQLException {
  8. SQLQuery sqlQuery = session.createSQLQuery(fullSql);
  9. sqlQuery.setResultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP);
  10. @SuppressWarnings("unchecked")
  11. List<Map<String, Object>> list = (List<Map<String, Object>>) sqlQuery
  12. .list();
  13. if (CollectionUtils.isEmpty(list)) {
  14. return null;
  15. }
  16. List<T> result = new ArrayList<T>();
  17. try {
  18. PropertyDescriptor[] props = Introspector
  19. .getBeanInfo(clzz).getPropertyDescriptors();
  20. for (Map<String, Object> map : list) {
  21. T t = clzz.newInstance();
  22. for (Entry<String, Object> entry : map
  23. .entrySet()) {
  24. String attrName = entry.getKey()
  25. .toLowerCase();
  26. for (PropertyDescriptor prop : props) {
  27. if (!attrName.equals(prop.getName())) {
  28. continue;
  29. }
  30. Method method = prop.getWriteMethod();
  31. Object value = entry.getValue();
  32. if (value != null) {
  33. value = ConvertUtils.convert(value,
  34. prop.getPropertyType());
  35. }
  36. method.invoke(t, value);
  37. }
  38. }
  39. result.add(t);
  40. }
  41. } catch (Exception e) {
  42. throw new RuntimeException(e);
  43. }
  44. return result;
  45. }
  46. });
  47. }
分享到:
评论

相关推荐

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

    总结起来,Hibernate的本地SQL查询功能为我们提供了一种灵活的方式来执行复杂的数据库操作,同时通过`addEntity()`、`addScalar()`和`Transformers.aliasToBean()`等方法,我们可以方便地将查询结果封装成Java对象,...

    hibernate将本地SQL查询结果封装成对象(最终)

    使用本地sql语句查询后,无需再使用Object对查询结果进行强制转换,而是直接将查询结果放到实体Bean里了。 PS: 其实只有一版,这里只所以叫最终版是因为该附件我上传了好几天传不上去,到最后报告说‘资源已经存在...

    精通Hibernate:Java对象持久化详解.zip

    Hibernate通过提供一种对象-关系映射机制,使得Java对象可以直接与数据库表进行交互,而无需编写大量的SQL语句。这种映射机制使得开发过程更加面向对象,提高了代码的可读性和可维护性。 本书的核心内容可能包括...

    SQL转Java代码小工具

    Hibernate是一个流行的ORM(对象关系映射)框架,它可以自动处理Java对象和数据库表之间的映射,但仍然需要开发者提供SQL来执行特定的数据库操作。 关于“SQL转Java代码.exe”,这很可能是该工具的可执行文件,适用...

    精通Hibernate:Java对象持久化技术详解.pdf

    《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...

    hibernate将本地SQL查询结果封装成对象(最终).zip

    通过理解并掌握以上内容,开发者可以有效地利用Hibernate将本地SQL查询结果转换为Java对象,从而提高代码的可读性和维护性。在实际项目中,结合Hibernate的其他功能,如缓存、事务管理等,可以进一步提升开发效率。

    Hibernate中Sql语句

    虽然HQL是Hibernate提供的面向对象的语言,能够方便地映射到Java对象,但在某些场景下使用原生SQL更加灵活高效,例如: - **复杂查询**:当需要执行复杂的数据库操作时,如分组、聚合、子查询等,原生SQL能更好地...

    Java 精通Hibernate对象持久化技术权威指南

    Hibernate是Java领域广泛应用的对象关系映射(ORM)框架,它为Java应用程序提供了一种透明地访问数据库的方式,将传统的SQL语句转换为面向对象的编程模型。通过Hibernate,开发者可以避免编写大量的JDBC代码,从而...

    hibernate实现动态SQL查询

    通过对象-关系映射(ORM),Hibernate可以自动将Java对象转化为数据库中的记录,并反之。这样,开发者无需编写大量的JDBC代码,就能实现数据的增删改查。 二、动态SQL的概念 动态SQL是在运行时根据条件生成不同的...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     8.3 Java对象在Hibernate持久化层的状态  8.3.1 临时对象的特征  8.3.2 持久化对象的特征  8.3.3 被删除对象的特征  8.3.4 游离对象的特征  8.4 Session接口的详细用法  8.4.1 Session的save()和persist()...

    hibernate数据库通用SQL代码

    在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了与数据库的交互,使得开发者可以更专注于业务逻辑而不是底层的SQL操作。本文将详细讲解如何使用Hibernate来编写通用的数据库操作代码,包括插入...

    hibernate执行原生sql语句

    Hibernate 提供了多种方式来执行原生 SQL 语句,其中之一是使用 `Session.createSQLQuery()` 方法,该方法返回一个 `SQLQuery` 对象,该对象提供了执行原生 SQL 语句的方法。 例如,我们可以使用以下代码来执行一个...

    仿hibernate动态生成sql保存对象

    Hibernate允许开发者将Java对象与数据库表进行映射,通过对象的CRUD(创建、读取、更新、删除)操作实现对数据库的数据操作。在Hibernate中,我们通常使用注解来定义这些映射,比如`@Entity`表示这是一个可持久化的...

    精通Hibernate:Java对象持久化技术详解

    《精通Hibernate:Java对象持久化技术详解》一书聚焦于Java开发中的对象持久化技术,主要围绕Hibernate这一流行ORM框架进行深入探讨。Hibernate是Java世界里的重要工具,它简化了数据库操作,使得开发者可以更加专注...

    让hibernate输出sql语句参数配置.doc

    Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,广泛应用于 Java 企业应用开发中。为了提高 Hibernate 框架下的对象效率和开发效率,需要对其进行合理的配置。下面将详细介绍 Hibernate 配置参数的...

    精通Hibernate:java对象持久化技术

    【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...

    SQL格式化功能(JAVA代码)

    虽然Hibernate主要负责将Java对象与数据库表之间的映射,但它也提供了对SQL查询的支持,包括动态生成和执行SQL语句。在处理复杂的查询时,自动生成的SQL可能会变得难以阅读和理解,这就需要SQL格式化工具来帮助优化...

    Hibernate生产SQL语句

    在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者通过面向对象的方式操作数据库,而无需直接编写SQL语句。本文将深入探讨如何模仿Hibernate生成SQL语句,以及如何利用Java反射技术来...

    hibernate 连接sqlserver2000

    在Java应用程序开发中,Hibernate提供了对象关系映射功能,简化了数据库操作,将Java类与数据库表关联起来,使得开发者可以避免编写大量的SQL语句。 描述中的链接指向了一个个人博客,虽然具体内容未给出,但我们...

Global site tag (gtag.js) - Google Analytics