相關知識:
JSP+JavaBean開發模式
一、商品信息添加“商品類別”項type,1--飲品 2--手機 3--筆記本(1表示飲品)
1、數據庫添加商品類別項
2、JavaBean中添加商品類別項
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
二、商品信息添加功能實現
(1)商品信息添加頁面設計good_add.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
<form id="form1" name="form1" method="post" action="good_doAdd.jsp">
<table width="500" border="1">
<tr>
<td>商品名稱</td>
<td><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td>商品描述</td>
<td><textarea name="content" id="content" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td>商品價格</td>
<td><input type="text" name="price" id="price" /></td>
</tr>
<tr>
<td>商品數量</td>
<td><input type="text" name="num" id="num" /></td>
</tr>
<tr>
<td>商品類型</td>
<td><select name="type" id="type">
<option>商品類型</option>
<option value="1">飲品</option>
<option value="2">手機</option>
<option value="3">筆記本</option>
</select></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>
</html>
(2)DAO.add()實現商品信息添加
public boolean add(Goods g){
boolean flag=false;
String url="jdbc:sqlserver://10.40.43.202:1433;database=ebuy";
String user="shopping";
String password="shopping";
String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String sql="insert into goods(name,price,num,type)values(?,?,?,?)";
Connection conn=null;
PreparedStatement stmt=null;
try {
Class.forName(driver);
conn=DriverManager.getConnection(url, user, password);
//Statement子類,具有預處理SQL語句功能個
stmt=conn.prepareStatement(sql);
stmt.setString(1, g.getName());
stmt.setFloat(2, g.getPrice());
stmt.setInt(3, g.getNum());
stmt.setString(4, g.getType());
int n=stmt.executeUpdate();
if(n>=1)
{
flag=true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try{
if(stmt!=null)
{
stmt.close();
}
if(conn!=null)
{
conn.close();
}
}catch(Exception e1){
}
return flag;
}
(3)JSP文件訪問DAO.add()實現添加商品good_doAdd.jsp
編寫g_save.jsp添加商品處理
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ pageimport="java.sql.*" %>
<%@ pageimport="java.util.*" %>
<%@ page import="mybean.*"%>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="goods"class="mybean.Goods" scope="page"/>
<jsp:getProperty name="goods"property="*"/>
<%
GoodsDAO dao = newGoodsDAO();
dao.add(g);
//斜體部分爲修改商品使用,添加商品時寫
%>
<jsp:forward page="good_view.jsp"/>
三、商品信息顯示及操作頁面
說明:
(1)點擊“添加”鏈接--->good_add頁面,用戶添加信息--->good_doAdd將用戶添加信息保存到數據庫
(2)點擊“刪除”鏈接(傳遞gid值)--->good_delete,刪除數據庫中gid相同的商品信息
(3)點擊“修改”鏈接(傳遞gid值)--->good_update頁面(通過gid參數數據庫中查詢相應商品信息,通過表單方式顯示信息,其中gid不可更改)--->good_doUpdate實現數據庫中更改信息
(4)點擊“詳細”鏈接(傳遞gid值)--->good.jsp 顯示商品詳細信息,包括商品描述、商品類型等(表格顯示,與商品添加、商品修改頁面相似)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="mybean.*" %>
<div style="width:500px;">
<p>商品信息顯示</p>
<div style="padding-left:350px;"><a href="good_add.jsp">添加</a></div>
<table width="400" border="1">
<tr>
<td>商品ID</td>
<td>商品名稱</td>
<td>商品價格</td>
<td>商品數量</td>
<td>刪除</td>
<td>修改</td>
<td>詳細</td>
</tr>
<%
GoodsDAO dao=new GoodsDAO();
LinkedList<Goods>gs=dao.list();
for(Goods g:gs)
{
//out.println(g.getName());
%>
<tr>
<td><%=g.getGid()%></td>
<td><%=g.getName()%></td>
<td><%=g.getPrice()%></td>
<td><%=g.getNum()%></td>
<td><a href="good_delete.jsp?gid=<%=g.getGid()%>">刪除</a></td>
<td><a href="good_update.jsp?gid=<%=g.getGid()%>">修改</a></td>
<td>詳細</td>
</tr>
<%} %>
</table>
</div>
四、商品信息刪除
(1)商品瀏覽頁good_view.jsp添加刪除鏈接< a href="good_delete.jsp?gid=<%=g.getGid()%>">刪除</a>
(2)DAO.delete()實現商品信息刪除
public boolean delete(int gid)
{
boolean flag=false;
String url="jdbc:sqlserver://10.40.43.202:1433;database=ebuy";
String user="shopping";
String password="shopping";
String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//String sql="delete from goods where gid=1001" ;
String sql="delete from goods where gid=?" ;
Connection conn=null;
//Statement stmt=null;
PreparedStatement stmt=null;
try {
Class.forName(driver);
conn=DriverManager.getConnection(url, user, password);
//stmt=conn.createStatement();
// int n=stmt.executeUpdate(sql);
// if(n>=1)
// {
// flag=true;
// }
//
stmt=conn.prepareStatement(sql);
stmt.setInt(1, gid);
int n=stmt.executeUpdate();
if(n>=1)
{
flag=true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try{
if(stmt!=null)
{
stmt.close();
}
if(conn!=null)
{
conn.close();
}
}catch(Exception e1){
}
return flag;
}
(3)JSP文件訪問DAO.delete()實現刪除商品信息good_delete.jsp
<%@ page language="java" import="java.util.*,mybean.*" pageEncoding="UTF-8"%>
<%
GoodsDAO dao=new GoodsDAO();
String gid=request.getParameter("gid");
if(dao.delete(Integer.parseInt(gid)))
{
out.print("ok");
}else{
out.print("error");
}
response.setHeader("refresh", "2;url=good_view.jsp");
%>
五、商品信息更改功能實現
(0)DAO實現通過gid獲得商品信息
public Goods getById(int gid){
Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;
String url="jdbc:sqlserver://10.40.43.202:1433;Database=ebuy";
String user="shopping";
String password="shopping";
String sql="select * from goods where gid=?";
String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";
Goods g=new Goods();
try {
Driver driver=(Driver)Class.forName(className).newInstance();
conn=DriverManager.getConnection(url, user, password);
stmt=conn.prepareStatement(sql);
stmt.setInt(1,gid);
rs=stmt.executeQuery();
if(rs.next()){
g.setGid(rs.getInt("gid"));
g.setName(rs.getString("name"));
g.setPrice(rs.getFloat("price"));
g.setNum(rs.getInt("num"));
g.setType(rs.getString("type"));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(rs!=null)
{rs.close();}
if(stmt!=null)
{stmt.close();}
if(conn!=null)
{conn.close();}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return g;
}
(1)商品信息更改頁面設計good_update.jsp
<%@ page language="java" import="java.util.*,mybean.*" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
<%
String gid=request.getParameter("gid");
GoodsDAO dao=new GoodsDAO();
int id=Integer.parseInt(gid);
Goods g=dao.getById(id);
%>
商品信息修改. <br>
<form id="form1" name="form1" method="post" action="good_doUpdate.jsp">
<table width="500" border="1">
<tr>
<td>商品ID</td>
<td><input type="text" name="name" id="name" value="<%=g.getGid()%>" readonly="ok"/></td><!--只讀,不可改商品編號-->
</tr>
<tr>
<td>商品名稱</td>
<td><input type="text" name="name" id="name" value="<%=g.getName()%>"/></td>
</tr>
<tr>
<td>商品描述</td>
<td><textarea name="content" id="content" cols="45" rows="5"><%=g.getContent()%></textarea></td>
</tr>
<tr>
<td>商品價格</td>
<td><input type="text" name="price" id="price" value="<%=g.getPrice()%>"/></td>
</tr>
<tr>
<td>商品數量</td>
<td><input type="text" name="num" id="num" value="<%=g.getNum()%>"/></td>
</tr>
<tr>
<td>商品類型</td>
<td><select name="type" id="type">
<option>商品類型</option>
<option value="1">飲品</option>
<option value="2">手機</option>
<option value="3">筆記本</option>
</select></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>
</html>
(2)DAO.update()實現商品信息修改(與add代碼基本相同,可以複製,區別是sql語句及相關部分)
public boolean update(Goods g){
boolean flag=false;
String url="jdbc:sqlserver://localhost:1433;database=ebuy";
String user="shopping";
String password="shopping";
String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//String sql="insert into goods(name,price,num,type)values(?,?,?,?)";
String sql="update goods set name=?,price=?,num=?,type=?,content=? where gid=?";
Connection conn=null;
PreparedStatement stmt=null;
try {
Class.forName(driver);
conn=DriverManager.getConnection(url, user, password);
stmt=conn.prepareStatement(sql);
stmt.setString(1, g.getName());
stmt.setFloat(2, g.getPrice());
stmt.setInt(3, g.getNum());
stmt.setString(4, g.getType());
stmt.setString(5,g.getContent());
stmt.setInt(6,g.getGid());
int n=stmt.executeUpdate();
if(n>=1)
{
flag=true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try{
if(stmt!=null)
{
stmt.close();
}
if(conn!=null)
{
conn.close();
}
}catch(Exception e1){
}
return flag;
}
(3)JSP文件訪問DAO.update()實現修改商品信息 good_doUpdate.jsp(與doAdd相似,區別執行dao.update)
<%@ page language="java" import="java.util.*,mybean.*" pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="goods" class="mybean.Goods"></jsp:useBean>
<jsp:setProperty property="*" name="goods"/>
<%
GoodsDAO dao=new GoodsDAO();
if(dao.update(goods))
{
out.println("ok");
}else{
out.println("error");
}
response.setHeader("refresh", "2;url=good_view.jsp");
%>
六、實現商品信息查詢功能
1、實現按商品類別查詢
(1)商品DAO添加分類查詢功能
public LinkedList<Goods> search(String type){
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
LinkedList<Goods> gs=new LinkedList<Goods>();
String url="jdbc:sqlserver://localhost:1433;database=ebuy";
String user="shopping";
String password="shopping";
String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String sql="select * from goods where type=?";
try {
Class.forName(className);
conn=DriverManager.getConnection(url,user,password);
ps=conn.prepareStatement(sql);
ps.setString(1,type);//1
rs=ps.executeQuery();
while(rs.next()){
Goods g=new Goods();
g.setGid(rs.getInt("gid"));
g.setName(rs.getString("name"));
g.setPrice(rs.getFloat("price"));
g.setNum(rs.getInt("num"));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(rs!=null)
{rs.close();}
if(ps!=null)
{ps.close();}
if(conn!=null)
{conn.close();}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return gs;
}
(2)good_view修改代碼
<div style="padding-left:150px;float:left;">
<form action="" method="post">
<select name="type" id="type">
<option value="">--商品類型--</option>
<option value="1">飲品</option>
<option value="2">手機</option>
<option value="3">筆記本</option>
</select>
<input type="submit" value="查詢"/>
</form>
</div>
<div style="padding-right:150px;float:right;"><a href="good_add.jsp">添加</a></div>
(3)實現點擊“查詢”按分類查詢
2、實現按商品名稱查詢