JSP第七次課:實現商品管理功能

相關知識:

JSP+JavaBean開發模式



一、商品信息添加“商品類別”項type,1--飲品  2--手機   3--筆記本(1表示飲品)

wKiom1UTZQqwnbs4AAHLu-Ur5eo360.jpg

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"/>

三、商品信息顯示及操作頁面

wKiom1UTZliTbNe_AAItodrQfBw500.jpg

說明:

(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、實現按商品名稱查詢


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章