结合课本第6章例子6-1至6-7集成做一个小型产品管理,实现一定的查询功能。(代码见文末)
实现效果图:
主界面
浏览所有记录
多样查询界面
顺序查询
随机查询
条件查询
排序查询
选择查询
更新记录
源代码
Guide.jsp
<%@ page contentType="text/html;charset=gb2312" %>
queryGuide.jsp
<%@ page contentType="text/html;charset=gb2312" %>
example6_1.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<% Connection con;
Statement sql;
ResultSet rs;
try{ Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
try { String uri= "jdbc:mysql://127.0.0.1/warehouse";
String user="root";
String password="123";
con=DriverManager.getConnection(uri,user,password);
//也可以写成con=DriverManager.getConnection(uri+"?user=root&password=");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM product ");
out.print("");
out.print("");
out.print(""+"产品号");
out.print(" "+"名称");
out.print(" "+"生产日期");
out.print(" "+"价格");
out.print(" ");
while(rs.next()){
out.print("");
out.print(""+rs.getString(1)+" ");
out.print(""+rs.getString(2)+" ");
out.print(""+rs.getDate("madeTime")+" ");
out.print(""+rs.getFloat("price")+" ");
out.print(" ") ;
}
out.print("
");
con.close();
}
catch(SQLException e){
out.print(e);
}
%>
example6_3.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="random"%>
随机查询记录
example6_4.jsp
<%@ page contentType="text/html;charset=GB2312" %>
byNumber.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
<% String number=request.getParameter("number");
if(number==null)
number ="";
byte [] bb =number.getBytes("iso-8859-1");
number=new String(bb);
%>
根据产品号<%=number%>查询到的记录:
<%=queryResultByNumber%> <%--queryResultByNumber是Tag文件返回的对象--%>
byPrice.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
<% String min=request.getParameter("priceMin");
String max=request.getParameter("priceMax");
%>
价格在<%=min%>至 <%=max%>之间的记录:
<%=queryResultByPrice%> <%--queryResultByPrice是Tag文件返回的对象--%>
example6_5.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
<% String orderType=request.getParameter("orderType");
if(orderType==null)
orderType="";
%>
根据排序方式:<%=orderType%>,排序的记录:
<%=orderResult%> <%-- orderResult是Tag文件返回的对象 --%>
example6_6.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
<% String ziduan=request.getParameter("ziduan");
String keyWord=request.getParameter("keyWord");
if(ziduan==null||keyWord==null){
ziduan="";
keyWord="";
}
byte bb[]=keyWord.getBytes("iso-8859-1");
keyWord=new String(bb);
out.println("关键字 "+keyWord);
%>
查询到的记录:
<%=foundResult%> <%--foundResult是Tag文件返回的对象 --%>
example6_7.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
inquire.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
<% String database=new String("warehouse");
String tableName=new String("product");
String user=new String("root");
String password=new String("123");
%>
在<%=biao%>表查询到记录: <%--biao是Tag文件返回的对象--%>
<%=queryResult %> <%--queryResult是Tag文件返回的对象--%>
newResult.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="renew"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
<% String nu=request.getParameter("number");
String na=request.getParameter("name");
String mT=request.getParameter("madeTime");
String pr=request.getParameter("price");
byte bb[]=na.getBytes("iso-8859-1");
na=new String(bb);
%>
product表更新后的数据记录是:
<%=queryResult %>
random.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="random"%>
<%
String n=request.getParameter("count");
%>
在<%=biao%>表查询到<%=randomCount%>条记录: <%--biao和randomCount是Tag文件返回的对象--%>
<%=queryResult %> <%--queryResult是Tag文件返回的对象--%>
KeyWord.tag
<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.sql.*" %>
<%@ attribute name="keyWord" required="true" %>
<%@ attribute name="ziduan" required="true" %>
<%@ variable name-given="foundResult" scope="AT_END" %>
<%
String condition="SELECT * FROM product Where "+ziduan+
" like '%"+keyWord+"%'";
StringBuffer result;
result=new StringBuffer();
try{ Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
int n=0;
try{ result.append("");
String uri=
"jdbc:mysql://127.0.0.1/warehouse?"+
"user=root&password=123&characterEncoding=gb2312";
con=DriverManager.getConnection(uri);
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,"product",null);
int 字段个数=0;
result.append("");
while(rs1.next()){
字段个数++;
String clumnName=rs1.getString(4);
result.append(""+clumnName+" ");
}
result.append(" ");
sql=con.createStatement();
rs=sql.executeQuery(condition);
while(rs.next()){
result.append("");
for(int k=1;k<=字段个数;k++)
result.append(""+rs.getString(k)+" ");
result.append(" ");
}
result.append("
");
con.close();
}
catch(SQLException e){
result.append("请输入模糊查询条件
");
}
//返回foundResult对象:
jspContext.setAttribute("foundResult",new String(result));
%>
NewRecord.tag
<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.sql.*" %>
<%@ attribute name="number" required="true" %>
<%@ attribute name="name" required="true" %>
<%@ attribute name="madeTime" required="true" %>
<%@ attribute name="price" required="true" %>
<% float p=Float.parseFloat(price);
String condition1="UPDATE product SET name= '"+name+
"' WHERE number="+"'"+number+"'" ,
condition2="UPDATE product SET madeTime= '"+madeTime+
"' WHERE number="+"'"+number+"'",
condition3="UPDATE product SET price= "+price+
" WHERE number="+"'"+number+"'" ;
try{ Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
try{ String uri=
"jdbc:mysql://127.0.0.1/warehouse?"+
"user=root&password=123&characterEncoding=gbk";
con=DriverManager.getConnection(uri);
sql=con.createStatement();
sql.executeUpdate(condition1);
sql.executeUpdate(condition2);
sql.executeUpdate(condition3);
con.close();
}
catch(Exception e){
out.print(""+e);
}
%>
NumberConditon.tag
<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.sql.*" %>
<%@ attribute name="number" required="true" %>
<%@ variable name-given="queryResultByNumber" scope="AT_END" %>
<% StringBuffer result;
result=new StringBuffer();
try{ Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
int n=0;
try{ result.append("");
String uri=
"jdbc:mysql://127.0.0.1/warehouse?"+
"user=root&password=123&characterEncoding=gb2312";
con=DriverManager.getConnection(uri);
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,"product",null);
int 字段个数=0;
result.append("");
while(rs1.next()){
字段个数++;
String clumnName=rs1.getString(4);
result.append(""+clumnName+" ");
}
result.append(" ");
sql=con.createStatement();
String condition=
"SELECT * FROM product Where number ='"+number+"'";
rs=sql.executeQuery(condition);
while(rs.next()){
result.append("");
for(int k=1;k<=字段个数;k++)
result.append(""+rs.getString(k)+" ");
result.append(" ");
}
result.append("
");
con.close();
}
catch(SQLException e){
result.append(e);
}
jspContext.setAttribute("queryResultByNumber",new String(result));
%>
PriceConditon.tag
<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.sql.*" %>
<%@ attribute name="priceMax" required="true" %>
<%@ attribute name="priceMin" required="true" %>
<%@ variable name-given="queryResultByPrice" scope="AT_END" %>
<% float max=Float.parseFloat(priceMax);
float min=Float.parseFloat(priceMin);
StringBuffer result;
result=new StringBuffer();
try{ Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
int n=0;
try{ result.append("");
String uri="jdbc:mysql://127.0.0.1/warehouse";
con=DriverManager.getConnection(uri,"root","123");
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,"product",null);
int 字段个数=0;
result.append("");
while(rs1.next()){
字段个数++;
String clumnName=rs1.getString(4);
result.append(""+clumnName+" ");
}
result.append(" ");
sql=con.createStatement();
String condition=
"SELECT * FROM product Where price <="+
max+" AND "+"price >= "+min;
rs=sql.executeQuery(condition);
while(rs.next()){
result.append("");
for(int k=1;k<=字段个数;k++)
result.append(""+rs.getString(k)+" ");
result.append(" ");
}
result.append("
");
con.close();
}
catch(SQLException e){
result.append(e);
}
jspContext.setAttribute("queryResultByPrice",new String(result));
%>
QueryTag.tag
<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.sql.*" %>
<%@ attribute name="dataBaseName" required="true" %>
<%@ attribute name="tableName" required="true" %>
<%@ attribute name="user" required="true" %>
<%@ attribute name="password" required="true" %>
<%@ variable name-given="biao" scope="AT_END" %>
<%@ variable name-given="queryResult" scope="AT_END" %>
<% StringBuffer result;
result=new StringBuffer();
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
try{ result.append("");
String uri="jdbc:mysql://127.0.0.1/"+dataBaseName;
con=DriverManager.getConnection(uri,user,password);
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,tableName,null);
int 字段个数=0;
result.append("");
while(rs1.next()){
字段个数++;
String clumnName=rs1.getString(4);
result.append(""+clumnName+" ");
}
result.append(" ");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM "+tableName);
while(rs.next()){
result.append("");
for(int k=1;k<=字段个数;k++)
result.append(""+rs.getString(k)+" ");
result.append(" ");
}
result.append("
");
con.close();
}
catch(SQLException e){
out.print(e);
}
//返回对象queryResult:
jspContext.setAttribute("queryResult",new String(result));
jspContext.setAttribute("biao",tableName); //返回biao对象
%>
RandomQuery.tag
<%@ tag pageEncoding="gb2312" %>
<%@ tag import="java.sql.*" %>
<%@ tag import="java.util.*" %>
<%@ attribute name="count" required="true" %>
<%@ variable name-given="biao" scope="AT_END" %>
<%@ variable name-given="queryResult" scope="AT_END" %>
<%@ variable name-given="randomCount" scope="AT_END" %>
<%
String tableName;
tableName=new String("product");
Vector vector=new Vector();
StringBuffer result;
result=new StringBuffer();
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
int n=0;
try{ result.append("");
String uri="jdbc:mysql://127.0.0.1/warehouse";
con=DriverManager.getConnection(uri,"root","123");
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,tableName,null);
int 字段个数=0;
result.append("");
while(rs1.next()){
字段个数++;
String clumnName=rs1.getString(4);
result.append(""+clumnName+" ");
}
result.append(" ");
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=sql.executeQuery("SELECT * FROM "+tableName);
rs.last();
int rowNumber=rs.getRow();
int number=rowNumber; //获取记录数
for(int i=1;i<=number;i++)
vector.add(new Integer(i));
int m=Math.min(Integer.parseInt(count),number);
n=m;
while(m>0){
int i=(int)(Math.random()*vector.size());
//从vector中随机抽取一个元素:
int index=((Integer)vector.elementAt(i)).intValue();
rs.absolute(index); //游标移到这一行
result.append("");
for(int k=1;k<=字段个数;k++)
result.append(""+rs.getString(k)+" ");
result.append(" ");
m--;
vector.removeElementAt(i); //将抽取过的元素从vector中删除
}
result.append("
");
con.close();
}
catch(SQLException e){
result.append("请输入正确的用户名和密码");
}
jspContext.setAttribute("queryResult",new String(result));//返回queryResult对象
jspContext.setAttribute("biao",tableName);//返回biao对象
jspContext.setAttribute("randomCount",String.valueOf(n));//返回randomCount对象
%>
SortTag.tag
<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.sql.*" %>
<%@ attribute name="orderType" required="true" %>
<%@ variable name-given="orderResult" scope="AT_END" %>
<% String orderCondition=
"SELECT * FROM product ORDER BY "+orderType;
StringBuffer result;
result=new StringBuffer();
try{ Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
int n=0;
try{ result.append("");
String uri="jdbc:mysql://127.0.0.1/warehouse";
con=DriverManager.getConnection(uri,"root","123");
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,"product",null);
int 字段个数=0;
result.append("");
while(rs1.next()){
字段个数++;
String clumnName=rs1.getString(4);
result.append(""+clumnName+" ");
}
result.append(" ");
sql=con.createStatement();
rs=sql.executeQuery(orderCondition);
while(rs.next()){
result.append("");
for(int k=1;k<=字段个数;k++)
result.append(""+rs.getString(k)+" ");
result.append(" ");
}
result.append("
");
con.close();
}
catch(SQLException e){
result.append("");
}
//返回orderResult对象 :
jspContext.setAttribute("orderResult",new String(result));
%>