在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语句那样,而系统中没有相应的类和它对应,如何将结果显示到页面上去?
也可以参考这个,我认为它比较满意地回答了我的问题: 标题:使用 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/>");
}
}
分享到:
相关推荐
SQL是用于管理关系数据库的标准语言,用于查询、更新和操作数据。在Java中,通常使用JDBC(Java Database Connectivity)来与数据库进行交互,但JDBC的API相对底层,需要编写大量的样板代码。 JoSQL则引入了一种新...
然而,在JPA 2.0中,使用entityManager.createNativeQuery()执行原生的SQL语句时,query.getResultList()返回的是一个List[]>,每行数据被作为一个对象数组返回。这使得代码不容易让人理解,且不灵活。因此,本文将...
`createQuery()`方法接收HQL语句,返回一个Query对象,然后调用`list()`方法获取所有数据。 2. **使用Criteria API** Criteria API提供了一种更加面向对象的方式来构建查询。查询所有数据的代码如下: ```java ...
EJB3QL的主要优势在于它可以被编译成不同的底层数据库支持的SQL语句,这意味着开发者可以编写一次EJB3QL查询代码,然后在不同的数据库系统上运行,无需修改。 #### 三、EJB3QL的基本语法和使用 EJB3QL的基本语法...
Java动态拼接SQL是指在Java中使用Query语言来动态地构建和执行SQL语句,从而实现灵活的数据查询和处理。下面是关于Java如何使用Query动态拼接SQL的详细知识点: 1. 动态拼接SQL的必要性 在实际应用中,我们经常...
可以在Repository接口的方法上使用`@Query`注解编写自定义的SQL查询: ```java @Query("SELECT u FROM User u WHERE u.username = ?1") List<User> findUsersByUsername(String username); ``` 3. **使用...
本地查询直接使用原生态的 SQL 语句来检索数据。例如: ```java Query query = entityManager.createNativeQuery("select name from person where id=:id"); query.setParameter("id", 1); String name = (String) ...
它允许开发者以面向对象的方式处理数据,而无需直接编写SQL语句。本资料将深入探讨Hibernate的基础查询功能,包括HQL(Hibernate Query Language)、Criteria API以及Query API。 1. **HQL:Hibernate查询语言** ...
假分页,也称为内存分页,它一次性加载所有数据到内存中,然后通过索引进行分页显示,这种方式适用于数据量较小的情况。而真分页,又叫物理分页,它是直接在数据库层面进行分页操作,只加载当前页的数据,对内存压力...
List<User> users = sqlQuery.getResultList(); ``` 以上就是JPA对单表进行增删改查的基本操作和Query方法的介绍。通过学习和实践这个"jap对单表的增删改查.zip"项目,你可以深入了解JPA与Hibernate的结合使用,...
在Java编程中,连接SQL数据库是开发人员进行数据操作的基础步骤。本文将详细介绍三种常见的Java连接SQL数据库的方法:JDBC(Java Database Connectivity)、JNDI(Java Naming and Directory Interface)以及JPA...
users = namedQuery.getResultList(); ``` 以上内容详细介绍了JPA的基础知识,包括实体单元的创建、服务器属性设置、实体类的构建以及如何进行CRUD操作和各种查询。理解并熟练掌握这些概念和方法,将有助于在实际...
总结来说,Struts2分页源码技术涉及到Action的分页参数处理、Service层的SQL构建和执行,以及视图层的数据显示。结合Hibernate框架,我们可以更高效地处理分页查询,提高应用程序的性能。在实际开发中,还需要考虑...
Spring Data JPA 是一个基于 Java Persistence API(JPA)的数据访问技术,提供了一个简洁的方式来访问关系数据库。分页查询是数据库查询中的一种常见操作,Spring Data JPA 提供了多种方式来实现分页查询。本文将...
在Java编程语言中,"zong分页查询"通常指的是在数据库操作中实现分页显示数据的功能。分页查询是大型应用系统中常见的需求,它能够有效地管理大量数据,提高用户体验,避免一次性加载所有数据导致的性能问题。下面将...
例如,要获取第2页,每页显示10条数据的SQL语句为: ```sql SELECT * FROM table LIMIT 10 OFFSET 10; ``` 这里的10是每页的记录数,10是跳过的记录数(即第一页的记录数)。 二、Hibernate分页查询 在Hibernate中...
分页是将大量数据分为多个小部分(页)进行显示,每一页包含一定数量的记录。在Web应用中,用户可以通过点击“上一页”、“下一页”或输入页码来浏览不同页面的数据。 在Hibernate中,我们可以使用`Criteria`、`...
JPA(Java Persistence API)是一种Java持久化API,提供了使用JPQL(Java Persistence Query Language)语句来进行增删改查操作的功能。在本文中,我们将介绍JPA之使用JPQL语句进行增删改查的基本概念和实践指南。 ...
List<MyEntity> entities = query.getResultList(); ``` 在处理大量数据时,为了提高性能,可以使用`scroll()`方法进行分页或批量处理。同时,别忘了在每次数据库操作后关闭Session,释放资源。 最后,事务管理是...
Spring Data JPA 是一个强大的框架,它简化了与Java持久层的交互,允许开发者以声明式的方式处理数据库操作。...结合Spring框架的其他组件,如Spring Boot和Spring MVC,可以构建出高效、可维护的后端系统。