商品表中的字段包裹商品信息和categoryid

若要在商品列表中显示出categoryname,有两种做法:

第一种做法:

拿到categoryid后再跟数据库连接一下,然后拿出categoryname

<td><%=Category.loadById(p.getCategoryId()).getName() %></td>

此种做法连接了两次数据库,效率较低。

第二种做法:

前提:两个对象之间有关联关系,在从数据库中取一个对象时,将与其关联的所有对象都取出来

在Product.java中有Category c;对象,在从数据库中取product时同时将c初始化了

DAO的getProducts方法中:

........

String sql = "select product.id, product.name, product.descr, product.normalprice, product.memberprice, product.pdate,      product.categoryid, " +
      "category.id cid, category.name cname, category.descr cdescr, category.pid, category.isleaf, category.grade" +
      " from product join category on(product.categoryid = category.id) limit " + (pageNo-1)*pageSize + "," + pageSize;

........

Category c = new Category();
c.setId(rs.getInt("cid"));
c.setName(rs.getString("cname"));
c.setDescr(rs.getString("cdescr"));
c.setLeaf(rs.getInt("isleaf") == 1 ? true : false);
c.setGrade(rs.getInt("grade"));
p.setC(c);
products.add(p);

........

JSP中的设计

<td><%=p.getC().getName() %></td>

这种做法比较麻烦,有的时候只想要Product的数据并不想要Category的数据。

解决方法:

1.编写两个方法,一个只取Product,一个取Product和Category。

2.编写一个方法,里面添加一个参数boolean lazy若lazy为true则只取Product的数据,若lazy为false则取Product的数据和所有相关联的对象的数据

商品列表中显示类别名称而不是类别ID的更多相关文章

  1. IM 融云 之 列表中显示聊天用户名称

    现在发现,聊天列表中,用户名称没有显示出来.

  2. 修改ECSHOP后台的商品列表里显示该商品品牌

    如何在在ECSHOP后台的商品列表中也显示商品的品牌”.下面就来最模板讲一下如何来修改.此方法只保证在ECSHOP2.7.2版本下有效,其他版本请参照修改. 第一步:首先我们来打开程序文件: /adm ...

  3. 在ECSHOP后台的订单列表中显示配送方式

    熟悉ECSHOP后台的人都知道,只有点击某个具体的订单,进入订单详细页面才能看到该订单的配送方式,最模板修改的目的,是想让管理者在订单列表页面 就能看到该订单的配送方式. 下面是修改方法:首先来修改 ...

  4. Android怎样改动app不在多任务列表中显示

    在实际开发中,我们希望某些activity或者应用程序不在多任务列表中显示,即长按Home键或者多任务button键不显示近期执行的程序,我们能够在对应应用程序的AndroidManifest.xml ...

  5. 利用mybatis的分页插件实现商品列表的显示

    分析思路: 当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能. 首先首先我们先找到商品查询商品的按钮在jsp的那个页面,即首页index.jsp 这里有个url即显示商品 ...

  6. 【Excle数据透视】如何在数据透视表字段列表中显示更多的字段

    创建完数据透视表之后,由于字段太多,在列表中没有完全显示 解决方案 通过"字段节和区域节并排"功能来显示更多字段 修改后结果 字段已经完全显示出来了! "字段节和区域节层 ...

  7. IE浏览器直接在页面中显示7z文件而不是下载问题解决

    IE浏览器中输入7z文件的完整下载URL后,不是保存文件,而是直接在页面中显示(当然是乱码) 这是因为浏览器对不同的资源文件处理的方式不同,例如图片文件,一般会直接打开,所以我们可以不用7z,使用zi ...

  8. iOS App让自己的应用在其它应用中打开列表中显示

    像百度网盘等应用,里面的文件打开时,都能够通过以下应用再打开文件.以下红色框框内的我的jpg就是我做的一个样例. 由于样例没有提供Icon,所以显示的是默认icon.   以下就是这样例的主要步骤和代 ...

  9. web中显示中文名称的图片,可以这样配置filter

    com.cy.filter.UrlFilter: package com.cy.filter; import java.io.IOException; import java.net.URLDecod ...

随机推荐

  1. 第二章实例:Android窗口菜单显示

    package test.main.cls; import com.example.popupwindow.R; import android.app.Activity; import android ...

  2. Emmet 语法探析

    Emmet 语法探析 Emmet(Zen Coding)是一个能大幅度提高前端开发效率的一个工具. 大多数编辑器都支持Snippet,即存储和重用一些代码块.但是前提是:你必须先定义 这些代码块. E ...

  3. java 成神之路

    一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133 http://i ...

  4. JavaScript总结之单击弹出div

    今天也算用了不少手段来实现他们的要求,大概记录一下,下边的代码示例,我全部修改贴出来,争取全部占到自己的代码里就能用. 1.点击同一个div,打开/关闭另一个div. 1 <script typ ...

  5. url&视图

    django.cof.url.defaults django.cof.url.defaults.patterns() 1 2 3 4 5 6 7 urlpatterns = patterns('', ...

  6. Linux系统下用C语言获取MAC地址

    最近在做一个小程序,需要用到在linux系统里编写C程序从而获取MAC地址,从网上搜了一遍,想总结一下.如果你就只需要单个功能的程序,可以采用方法一,见代码1,一般最好能够封装起来,写成获取MAC地址 ...

  7. Django学习(三) Django模型创建以及操作

    在Django中可以建立自己的模型Model,这里对应Java里的实体类,跟数据库表是对应的.其中用到了django.db模块中的models.如下图所示: mysite/news/models.py ...

  8. MYSQL SQL Server 事务

    开始: start transaction;   #   一定要有这个 ‘;’ 号. 注意: MYSQL  用的是快照隔离.就是说一个连接在修改的时候别的连接还是可以查询的. 例子: create t ...

  9. jquery实现导航栏鼠标点击后实行背景高亮,点击离开恢复(超级简单!!!!),jquery导航栏

    1.header部分要引入Jquery <asp:Content ID="HeaderContent" runat="server" ContentPla ...

  10. Oracle EBS-SQL (PO-18):检查工作台下达的PR在系统找不到.sql

    select * From apps.po_requisitions_interface_all---------------------------------------------------- ...