使用主键在jsp中显示来自mysql数据库的所有数据
问题描述:
我正在创建一个电子商务项目作为我学习的一部分。我想在同一个JSP页面上显示一个类别中的所有产品。例如,如果用户点击“笔记本”类别,则必须显示该类别中可用的所有产品。所有类别的所有产品都放在一张大桌子上。使用主键在jsp中显示来自mysql数据库的所有数据
我的数据库方案是:
create table products(product_id varchar(20),
product_name varchar(20),
product_prize varchar(20),
product_category varchar(20),
primary key(product_id));
我的主键是product_id
。但是,我目前的实现需要单独的JSP页面为每个人product_id
。当我有很多产品时,这是不切实际的。
类别页面的一个例子,lapcategory.jsp:
<% int sec1=1;
int sec2=2;
int sec3=3;
int sec4=4;
int sec5=5;
int sec6=6;
%>
<td>
<center>
<%if (sec1 ==1){ %>
<jsp:include page="includesPage/_sec1.jsp"></jsp:include>
<% } %>
</center>
</td>
<td>
<center>
<%if (sec2 ==2){ %>
<jsp:include page="includesPage/_sec2.jsp"></jsp:include>
<% } %>
</center>
</td>
此链接到各个栏目页面。然后,我也有章节页面,_sec1.jsp,_sec2.jsp等,我在那里使用product_id
获取数据。例如,_sec1.jsp:
String idn="20";
DB_Conn con = new DB_Conn();
Connection c = con.getConnection();
Statement statement = c.createStatement() ;
ResultSet resultset = statement.executeQuery("select product_id,product_name,product_desc,product_prize from product where product_id="+idn);
while(resultset.next()){
String product_id = resultset.getString(1);
String product_name = resultset.getString(2);
String product_desc = resultset.getString(3);
String product_prize = resultset.getString(4);
%>
<div id="se1">
<a href="product.jsp?id=<%=product_id%>"><% out.println(product_name); %></a><br>
<a href="#">Rs.<% out.println(product_prize); %></a>
<%
} %>
</div>
基本上,我要创建为每个产品ID,这显然不是一件容易的事处理个别的内页。我的问题是,做这件事的正确方法是什么?使用ArrayList
的东西,也许?
答
我理解你的问题,但我会建议,而不是写在jsp中的数据库查询相关的代码创建一个DAO,查询数据库,然后在一个数据对象中设置结果,数据对象将包含所有您需要的属性在JSP中显示。在从数据库读取数据对象的同时设置这个数据对象中的值,然后将该数据对象放在一个数组列表中,并将该数组列表填充到Jsp中。通过这种方式,您可以在一个jsp的帮助下显示所有产品,并且不需要创建单独的jsp。