日期:2014-05-17  浏览次数:20769 次

列表功能实现了,如何用组合键实现单条记录的查询(连接Oracle数据库),急~~~~~~~
rt
代码如下:
<%@ page language="java" import="java.util.*,com.entity.Account" contentType="text/html;charset=gbk"
  pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ include file="element/db_init.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link type="text/css" rel="stylesheet" href="css/style.css" />
<title>超市账单管理系统</title>
</head>
<%
  List<Account> accounts=digger.getAllAccount();
  pageContext.setAttribute("accounts",accounts);
   
 %>
<body>
<div id="header">
<div class="title"></div>

</div>
<div class="menu">
<form method="get" action="">
商品名称:<input type="text" name="productName" class="input-text" />&nbsp;&nbsp;&nbsp;&nbsp;
是否付款:<select name="payStatus">
<option value="">请选择</option>
<option value="1">已付款</option>
<option value="0">未付款</option>
</select>&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="submit" value="组合查询" class="button" />
</form>
</div>
<div class="main">
<div class="optitle clearfix">
<em><input type="button" name="button" value="添加数据" class="input-button" onclick="location.href='submit.jsp'" /></em>
<div class="title">账单管理&gt;&gt;</div>
</div>
<div class="content">
<table class="list">

<tr>
<td>账单编号</td>
<td>商品名称</td>
<td>商品数量</td>
<td>交易金额</td>
<td>是否付款</td>
<td>供应商名称</td>
<td>商品描述</td>
<td>账单时间</td>
</tr>
<c:forEach var="db_account" items="${pageScope.accounts}">
<tr>
<td><a href="modify.jsp?id=${db_account.aid}">${db_account.aid}</a></td>
<td>${db_account.commodityname}</td>
<td>${db_account.commoditycount}</td>
<td>${db_account.transactionmoney}</td>
<td>${db_account.ispaid}</td>
<td>${db_account.provider}</td>
<td>${db_account.description}</td>
<td>${db_account.accountdate}</td>
</c:forEach>
</tr>
</table>
</div>
</div>
</body>
</html>

------解决方案--------------------
List<Account> accounts=digger.getAllAccount(); 这个查询参数都没有设置。。当然会查询全部的。。

可以这样:
digger.getAllAccount(String productName,String payStatus); 这个带两个参数进去。。在里面执行查询的时候,判断两个参数,如果为null或者“”,那就查询全部。。不为“”,就带参数进去查。。

给你举个例子吧,应该很容易懂了。。你根据你的字段名改一下就行了
String sql = "select * from BlackList bl where 1=1 ";
if (!Utils.isNull(productName)) {
sql = sql + " and bl.productName like '" + productName + "%'";
}