`
xiegs2007
  • 浏览: 16172 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Spring MVC 如何显示自定义的sql语句的query.getResultList()的数据?

阅读更多
在vs的codeBehind中,我可以这样显示数据:
  string strSql = "select userId,count(*) as loginTimes
         from loginLog where loginDate > '2011-01-01';        //构建sql语句
  DataSet ds = bll.getList(strSql);                           //调用业务层方法,返回数据列表到数据集
  rptList.dataSource = ds;
  rptList.dataBind();                                         //将数据列表绑定到repeater控件中

然后在前台中,使用
<table width="100%" height="97" border="0" cellpadding="0" cellspacing="0">
  <asp:Repeater id="rptList" runat="server">
    <ItemTemplate>
      <tr>
        <td width="30%"> <%# DataBinder.Eval(Container.DataItem,"userId") %></td>
        <td width="70%"> <%# DataBinder.Eval(Container.DataItem,"loginTimes") %> </td>
      </tr>
    </ItemTemplate>
  </asp:Repeater>
</table>
循环将统计的各位用户上网次数列表显示出来;

我的问题是,springMVC中,如果业务层从数据库列表返回的是一个类的对象列表,也可以用forEach循环显示;
如果返回的是一个sql语句写的统计列表,就像上面的sql语句那样,而系统中没有相应的类和它对应,如何将结果显示到页面上去?

 可以参考这个:主题-Hibernate查询详解,http://www.iteye.com/topic/824531
也可以参考这个,我认为它比较满意地回答了我的问题: 标题:使用 JPQL 和原生 SQL 查询 JPA 实体地址,http://www.oracle.com/technetwork/cn/articles/vasiliev-jpql-085775-zhs.html?ssSourceSiteId=otnen 这篇文章写的非常好,深入、细致而明明白白地说明了问题的产生与解决的对策:
package jpqlexample.servlets;
...

class LineItemSum {
       private Double price;
       private Integer quantity;
       private Double rslt;
       public LineItemSum (Double price, Integer quantity){
             this.rslt = quantity*price;
       }
       public Double getRslt () {
            return this.rslt;
       }
       public void setRslt (Double rslt) {
            this.rslt = rslt;
       }
    }

public class JpqlJoinsServlet extends HttpServlet {
    ...

    public void doGet(
        ...
        List<LineItemSum> arr = (List<LineItemSum>)em.createQuery
                    ("SELECT NEW jpqlexample.servlets.LineItemSum(p.price, l.quantity) FROM PurchaseOrder o 
                            JOIN o.orderLineItems l JOIN l.product p JOIN p.supplier s WHERE s.sup_name = 'Tortuga Trading'")
                              .getResultList(); 
        Iterator i = arr.iterator();
        LineItemSum lineItemSum;
        Double sum = 0.0;
        while (i.hasNext()) {
            lineItemSum = (LineItemSum) i.next();
            sum = sum + lineItemSum.getRslt();
        }
        out.println("The total cost of the ordered products supplied by Tortuga Trading: "+ sum + "<br/>");
    }
}
 
分享到:
评论

相关推荐

    基于Java的实例源码-对象的SQL接口 JoSQL.zip

    SQL是用于管理关系数据库的标准语言,用于查询、更新和操作数据。在Java中,通常使用JDBC(Java Database Connectivity)来与数据库进行交互,但JDBC的API相对底层,需要编写大量的样板代码。 JoSQL则引入了一种新...

    让JPA的Query查询接口返回Map对象的方法

    然而,在JPA 2.0中,使用entityManager.createNativeQuery()执行原生的SQL语句时,query.getResultList()返回的是一个List[]&gt;,每行数据被作为一个对象数组返回。这使得代码不容易让人理解,且不灵活。因此,本文将...

    Hibernate_Query查询所有数据

    `createQuery()`方法接收HQL语句,返回一个Query对象,然后调用`list()`方法获取所有数据。 2. **使用Criteria API** Criteria API提供了一种更加面向对象的方式来构建查询。查询所有数据的代码如下: ```java ...

    EJB3_Persistence开发手册-EJB3_QL查询

    EJB3QL的主要优势在于它可以被编译成不同的底层数据库支持的SQL语句,这意味着开发者可以编写一次EJB3QL查询代码,然后在不同的数据库系统上运行,无需修改。 #### 三、EJB3QL的基本语法和使用 EJB3QL的基本语法...

    Java如何使用Query动态拼接SQL详解

    Java动态拼接SQL是指在Java中使用Query语言来动态地构建和执行SQL语句,从而实现灵活的数据查询和处理。下面是关于Java如何使用Query动态拼接SQL的详细知识点: 1. 动态拼接SQL的必要性 在实际应用中,我们经常...

    基于SpringBoot后端实现连接MySQL数据库并存贮数据教程

    可以在Repository接口的方法上使用`@Query`注解编写自定义的SQL查询: ```java @Query("SELECT u FROM User u WHERE u.username = ?1") List&lt;User&gt; findUsersByUsername(String username); ``` 3. **使用...

    jpa查询详解

    本地查询直接使用原生态的 SQL 语句来检索数据。例如: ```java Query query = entityManager.createNativeQuery("select name from person where id=:id"); query.setParameter("id", 1); String name = (String) ...

    Hibernate的一些基础的查询资料,备份

    它允许开发者以面向对象的方式处理数据,而无需直接编写SQL语句。本资料将深入探讨Hibernate的基础查询功能,包括HQL(Hibernate Query Language)、Criteria API以及Query API。 1. **HQL:Hibernate查询语言** ...

    hibernate中实现真分页和假分页技术

    假分页,也称为内存分页,它一次性加载所有数据到内存中,然后通过索引进行分页显示,这种方式适用于数据量较小的情况。而真分页,又叫物理分页,它是直接在数据库层面进行分页操作,只加载当前页的数据,对内存压力...

    jap对单表的增删改查.zip

    List&lt;User&gt; users = sqlQuery.getResultList(); ``` 以上就是JPA对单表进行增删改查的基本操作和Query方法的介绍。通过学习和实践这个"jap对单表的增删改查.zip"项目,你可以深入了解JPA与Hibernate的结合使用,...

    java三种方法连接SQL数据库

    在Java编程中,连接SQL数据库是开发人员进行数据操作的基础步骤。本文将详细介绍三种常见的Java连接SQL数据库的方法:JDBC(Java Database Connectivity)、JNDI(Java Naming and Directory Interface)以及JPA...

    JAVA 持久化应用指南

    users = namedQuery.getResultList(); ``` 以上内容详细介绍了JPA的基础知识,包括实体单元的创建、服务器属性设置、实体类的构建以及如何进行CRUD操作和各种查询。理解并熟练掌握这些概念和方法,将有助于在实际...

    Struts2分页源码技术的应用

    总结来说,Struts2分页源码技术涉及到Action的分页参数处理、Service层的SQL构建和执行,以及视图层的数据显示。结合Hibernate框架,我们可以更高效地处理分页查询,提高应用程序的性能。在实际开发中,还需要考虑...

    spring data jpa分页查询示例代码

    Spring Data JPA 是一个基于 Java Persistence API(JPA)的数据访问技术,提供了一个简洁的方式来访问关系数据库。分页查询是数据库查询中的一种常见操作,Spring Data JPA 提供了多种方式来实现分页查询。本文将...

    zong分页查询

    在Java编程语言中,"zong分页查询"通常指的是在数据库操作中实现分页显示数据的功能。分页查询是大型应用系统中常见的需求,它能够有效地管理大量数据,提高用户体验,避免一次性加载所有数据导致的性能问题。下面将...

    mysql 分页

    例如,要获取第2页,每页显示10条数据的SQL语句为: ```sql SELECT * FROM table LIMIT 10 OFFSET 10; ``` 这里的10是每页的记录数,10是跳过的记录数(即第一页的记录数)。 二、Hibernate分页查询 在Hibernate中...

    hibernate 分页

    分页是将大量数据分为多个小部分(页)进行显示,每一页包含一定数量的记录。在Web应用中,用户可以通过点击“上一页”、“下一页”或输入页码来浏览不同页面的数据。 在Hibernate中,我们可以使用`Criteria`、`...

    JPA之使用JPQL语句进行增删改查

    JPA(Java Persistence API)是一种Java持久化API,提供了使用JPQL(Java Persistence Query Language)语句来进行增删改查操作的功能。在本文中,我们将介绍JPA之使用JPQL语句进行增删改查的基本概念和实践指南。 ...

    hibernate--3.Hibernate数据持久化(通过 Session 操纵对象)

    List&lt;MyEntity&gt; entities = query.getResultList(); ``` 在处理大量数据时,为了提高性能,可以使用`scroll()`方法进行分页或批量处理。同时,别忘了在每次数据库操作后关闭Session,释放资源。 最后,事务管理是...

    Spring data JPA笔记资料

    Spring Data JPA 是一个强大的框架,它简化了与Java持久层的交互,允许开发者以声明式的方式处理数据库操作。...结合Spring框架的其他组件,如Spring Boot和Spring MVC,可以构建出高效、可维护的后端系统。

Global site tag (gtag.js) - Google Analytics