BaseDao.java
package com.company.mycompany.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * Model:无 * Description: 数据库连接类 * @author * Finished: 2008年10月xx日 */ public class BaseDao { //2005的驱动连接 //com.microsoft.sqlserver.jdbc.SQLServerDriver //jdbc:sqlserver://localhost:1433;databasename=company // 2000的驱动连接 //com.microsoft.jdbc.sqlserver.SQLServerDriver //jdbc:microsoft:sqlserver://localhost:1433;databasename=company //数据库驱动 private final static String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver"; // URL private final static String URL="jdbc:sqlserver://localhost:1433;DataBaseName=company"; //数据库用户名 private final static String DBNAME="sa"; //数据库密码 private final static String DBPASS="sa"; //darling /** * 得到数据库连接 * @return 数据库连接 * @throws ClassNotFoundException * @throws SQLException */ public static Connection getConn() throws ClassNotFoundException,SQLException{ Class.forName(DRIVER); //注册驱动 Connection conn=DriverManager.getConnection(URL,DBNAME,DBPASS); return conn; } /** * 关闭数据库相关连接 * @param conn * @param pstmt * @param rs */ public static void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs){ /*如果rs不空,关闭rs*/ if(rs!=null){ try{ rs.close(); }catch(SQLException e){ e.printStackTrace(); } } /*如果pstmt不空,关闭pstmt*/ if(pstmt!=null){ try{ pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } } /*如果conn不空,关闭conn*/ if(conn!=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } /** * 执行SQL语句,可以进行增、删、改、的操作,不能执行查询 * @param preparedSql 预编译的 SQL 语句 * @param param 预编译的SQL语句中的'?'参数的字符串数组 * @return 影响的条数 */ public static int executeSQL(String preparedSql,String[] param){ Connection conn=null; PreparedStatement pstmt=null; int num=0; /*处理SQL,执行SQL*/ try{ conn=getConn(); //得到数据库连接 pstmt=conn.prepareStatement(preparedSql); if(param!=null){ for(int i=0;i<param.length;i++){ pstmt.setString(i+1, param[i]); //设置参数 } } num=pstmt.executeUpdate(); //执行SQL语句 }catch(ClassNotFoundException e){ e.printStackTrace(); //处理ClassNotFountException异常 }catch(SQLException e){ e.printStackTrace(); //处理SQLException异常 }finally{ closeAll(conn,pstmt,null); //释放资源 } return num; } }
-------------------------------------------------------------------------------------------------------------------------------------
ProductDao.java
package com.company.mycompany.dao; import java.util.List; import com.company.mycompany.entity.Product; /** * Model:商品展示 * Description: 商品业务类接口 * @author * Finished: 2008年10月xx日 */ public interface ProductDao { /** * 分页查询所有商品信息 * @param page 页数,第几页。 * @param num 在页面中显示几条数据 * @return list 商品信息列表 */ public List findAllProduct(int page,int num); /** * 根据商品id查找相关商品信息 * @param productID 商品id * @return product 商品对象 */ public Product findProductByID(int productID); /** * 添加商品信息 * @param product 商品对象 * @return num 添加的个数 */ public int addProduct(Product product); /** * 修改商品信息 * @param product 商品对象 * @return num 修改的个数 */ public int updateProduct(Product product); /** * 删除商品信息 * @param productID 商品id * @return num 删除的个数 */ public int deleteProduct(int productID); /** * 查询上一条商品信息 * @param productID 商品id * @return num 上一条商品的id */ public int findTopProductByID(int productID); /** * 查询下一条商品信息 * @param productID 商品id * @return num 下一条商品的id */ public int findNextProductByID(int productID); /** * 删除选中的商品信息 * @param param 商品id数组 * @return 删除的条数 */ public int deleteProductByID(String [] param); /** * 根据商品编号查找相关商品信息 * @param serialNumber 商品编号 * @return 商品对象 */ public Product findProductByNumber(String serialNumber); /** * 随机查询出一条商品信息 * @return 商品对象 */ public Product findRandomProduct(); }
-----------------------------------------------------------------------------------------------------------------------------
Product .java
package com.company.mycompany.entity; /** * Model:商品展示 * Description: 商品实体类 * @author * Finished: 2008年10月xx日 */ public class Product { private int productID; // 商品id private String serialNumber; // 商品编号 private String name; // 商品名称 private String brand; // 商品品牌 private String model; // 商品型号 private double price; // 商品价格 private String picture; // 商品图片 private String description; // 商品描述 /* * 获得商品id */ public int getProductID() { return productID; } /* * 设置商品id */ public void setProductID(int productID) { this.productID = productID; } /* * 获得商品编号 */ public String getSerialNumber() { return serialNumber; } /* * 设置商品编号 */ public void setSerialNumber(String serialNumber) { this.serialNumber = serialNumber; } /* * 获得商品名称 */ public String getName() { return name; } /* * 设置商品名称 */ public void setName(String name) { this.name = name; } /* * 获得商品品牌 */ public String getBrand() { return brand; } /* * 设置商品品牌 */ public void setBrand(String brand) { this.brand = brand; } /* * 获得商品型号 */ public String getModel() { return model; } /* * 设置商品型号 */ public void setModel(String model) { this.model = model; } /* * 获得商品价格 */ public double getPrice() { return price; } /* * 设置商品价格 */ public void setPrice(double price) { this.price = price; } /* * 获得商品图片 */ public String getPicture() { return picture; } /* * 设置商品图片 */ public void setPicture(String picture) { this.picture = picture; } /* * 获得商品描述 */ public String getDescription() { return description; } /* * 设置商品描述 */ public void setDescription(String description) { this.description = description; } }
---------------------------------------------------------------------------------------------------------------------
ProductDaoImpl.java
package com.company.mycompany.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.company.mycompany.dao.BaseDao; import com.company.mycompany.dao.ProductDao; import com.company.mycompany.entity.Product; /** * Model:商品展示 * Description: 商品业务类接口实现类 * @author * Finished: 2008年10月xx日 */ public class ProductDaoImpl extends BaseDao implements ProductDao { private Connection conn =null; //保存数据库连接 private PreparedStatement pstmt = null; //用于执行SQL语句 private ResultSet rs = null; //用于保存查询结果集 /** * 分页查询所有商品信息 * @param page 页数,第几页。 * @param num 在页面中显示几条数据 * @return list 商品信息列表 */ public List findAllProduct(int page,int num) { //用来保存商品对象列表 List list = new ArrayList(); //开始行数,表示每页第一条记录在数据库中的行数 int rowBegin = 0; if(page > 1){ //按页数取得开始行数,设每页第一条记录在数据库中的行数 rowBegin = num * (page - 1); } //查询数据SQL语句 String sql = ""; String sql1 = "SELECT * FROM product"; String sql2 = "SELECT TOP "+num+" * FROM product WHERE productID NOT IN (SELECT TOP "+rowBegin+" productID FROM product ORDER BY productID DESC) ORDER BY productID DESC"; if(num == 0){ sql = sql1; }else{ sql = sql2; } try { //获取数据库连接对象 conn = BaseDao.getConn(); //执行查询操作 pstmt = conn.prepareStatement(sql); //执行SQL,得到结果集 rs = pstmt.executeQuery(); //处理结果,并把数据封装到product对象 while(rs.next()){ //实例化商品对象 Product product = new Product(); product.setProductID(rs.getInt("productID")); product.setSerialNumber(rs.getString("serialNumber")); product.setName(rs.getString("name")); product.setBrand(rs.getString("brand")); product.setModel(rs.getString("model")); product.setPrice(rs.getDouble("price")); product.setPicture(rs.getString("picture")); product.setDescription(rs.getString("description")); //把product对象添加到list集合中 list.add(product); } } catch (ClassNotFoundException e) { //处理异常 e.printStackTrace(); } catch (SQLException e) { //处理异常 e.printStackTrace(); }finally{ //关闭数据库连接 BaseDao.closeAll(conn, pstmt, rs); } //返回商品信息列表 return list; } /** * 根据商品id查找相关商品信息 * @param productID 商品id * @return product 商品对象 */ public Product findProductByID(int productID) { //实例化商品对象 Product product = new Product(); //查询数据SQL语句 String sql = "SELECT * FROM product WHERE productID=?"; try { //获取数据库连接 conn = BaseDao.getConn(); //执行查询操作 pstmt = conn.prepareStatement(sql); //设置SQL语句中的参数值 pstmt.setInt(1, productID); //执行数据库查询操作,封装数据 rs =pstmt.executeQuery(); //处理结果 while(rs.next()){ product.setProductID(rs.getInt("productID")); product.setSerialNumber(rs.getString("serialNumber")); product.setName(rs.getString("name")); product.setBrand(rs.getString("brand")); product.setModel(rs.getString("model")); product.setPrice(rs.getDouble("price")); product.setPicture(rs.getString("picture")); product.setDescription(rs.getString("description")); } } catch (ClassNotFoundException e) { //处理异常 e.printStackTrace(); } catch (SQLException e) { //处理异常 e.printStackTrace(); }finally{ //关闭数据库连接 BaseDao.closeAll(conn, pstmt, rs); } //返回商品对象 return product; } /** * 添加商品信息 * @param product 商品对象 * @return num 添加的个数 */ public int addProduct(Product product) { //定义变量存储添加商品返回的个数 int num = 0; //定义数组存储商品对象信息 String[] param = new String[]{product.getSerialNumber(),product.getName(), product.getBrand(),product.getModel(),product.getPrice()+"", product.getPicture(),product.getDescription()}; //插入数据SQL语句 String sql = "INSERT INTO PRODUCT VALUES(?,?,?,?,?,?,?)"; //调用方法执行插入 num = BaseDao.executeSQL(sql, param); //返回添加的个数 return num; } /** * 修改商品信息 * @param product 商品对象 * @return num 修改的个数 */ public int updateProduct(Product product){ //定义变量存储修改商品返回的个数 int num = 0; //定义数组存储商品对象信息 String[] param = new String[]{product.getSerialNumber(),product.getName(), product.getBrand(),product.getModel(),product.getPrice()+"", product.getPicture(),product.getDescription()}; //修改数据SQL语句 String sql = "UPDATE PRODUCT SET serialNumber=?,name=?,brand=?,model=?,price=?," + "picture=?,description=? where productID='"+product.getProductID()+"'"; //调用方法执行修改 num = BaseDao.executeSQL(sql, param); //返回修改的个数 return num; } /** * 删除商品信息 * @param productID 商品id * @return num 删除的个数 */ public int deleteProduct(int productID){ //定义变量存储删除商品返回的个数 int num = 0; //删除数据SQL语句 String sql = "DELETE PRODUCT WHERE productID='"+productID+"'"; //调用方法执行删除 num = BaseDao.executeSQL(sql, null); //返回删除的个数 return num; } /** * 查询上一条商品信息 * @param productID 商品id * @return num 上一条商品的id */ public int findTopProductByID(int productID) { //定义变量接收下一条商品的id int num = 0; //查询数据SQL语句 String sql = "SELECT TOP 1 productID FROM product WHERE "+ "productID > ? ORDER BY productID ASC"; try { //获取数据库连接 conn = BaseDao.getConn(); //执行查询操作 pstmt = conn.prepareStatement(sql); //设置SQL语句中的参数值 pstmt.setInt(1, productID); //执行数据库查询操作 rs = pstmt.executeQuery(); while(rs.next()){ num = rs.getInt("productID"); } } catch (ClassNotFoundException e) { //处理异常 e.printStackTrace(); } catch (SQLException e) { //处理异常 e.printStackTrace(); }finally{ //关闭数据库连接 BaseDao.closeAll(conn, pstmt, rs); } //返回下一条商品的id return num; } /** * 查询下一条商品信息 * @param productID 商品id * @return num 下一条商品的id */ public int findNextProductByID(int productID) { //定义变量接收上一条商品的id int num = 0; //查询数据SQL语句 String sql = "SELECT TOP 1 productID FROM product WHERE "+ "productID < ? ORDER BY productID DESC"; try { //获取数据库连接 conn = BaseDao.getConn(); //执行查询操作 pstmt = conn.prepareStatement(sql); //设置SQL语句中的参数值 pstmt.setInt(1, productID); //执行数据库查询操作 rs = pstmt.executeQuery(); while(rs.next()){ num = rs.getInt("productID"); } } catch (ClassNotFoundException e) { //处理异常 e.printStackTrace(); } catch (SQLException e) { //处理异常 e.printStackTrace(); }finally{ //关闭数据库连接 BaseDao.closeAll(conn, pstmt, rs); } //返回上一条商品的id return num; } /** * 删除选中的商品信息 * @param param 商品id数组 * @return num 删除的条数 */ public int deleteProductByID(String [] param){ //存储删除的条数 int num = 0; //拼接SQL语句。拼接成delete from tableName where id in(id1,id2,......)这种形式 String sql =""; String sql1 ="DELETE FROM PRODUCT WHERE productID IN("; String sql2 =""; String sql3 =")"; if(param!=null){ for(int i=0;i<param.length;i++){ //如果参数是最后一个则不加逗号",",否则加逗号"," if((i+1) == param.length){ sql2 = sql2 + param[i]; }else{ sql2 = sql2 + param[i]+","; } } } sql = sql1+sql2+sql3; try{ //获取数据库连接 conn = BaseDao.getConn(); pstmt=conn.prepareStatement(sql); //执行SQL语句 num = pstmt.executeUpdate(); }catch(ClassNotFoundException e){ //处理异常 e.printStackTrace(); }catch(SQLException e){ //处理异常 e.printStackTrace(); }finally{ //关闭数据库连接 BaseDao.closeAll(conn, pstmt, rs); } //返回删除的条数 return num; } /** * 根据商品编号查找相关商品信息 * @param serialNumber 商品编号 * @return 商品对象 */ public Product findProductByNumber(String serialNumber) { //实例化商品对象 Product product = new Product(); //查询数据SQL语句 String sql = "SELECT * FROM product WHERE serialNumber=?"; try { //获取数据库连接 conn = BaseDao.getConn(); //执行查询操作 pstmt = conn.prepareStatement(sql); //设置SQL语句中的参数值 pstmt.setString(1, serialNumber); //执行数据库查询操作,封装数据 rs =pstmt.executeQuery(); //处理结果 while(rs.next()){ product.setProductID(rs.getInt("productID")); product.setSerialNumber(rs.getString("serialNumber")); product.setName(rs.getString("name")); product.setBrand(rs.getString("brand")); product.setModel(rs.getString("model")); product.setPrice(rs.getDouble("price")); product.setPicture(rs.getString("picture")); product.setDescription(rs.getString("description")); } } catch (ClassNotFoundException e) { //处理异常 e.printStackTrace(); } catch (SQLException e) { //处理异常 e.printStackTrace(); }finally{ //关闭数据库连接 BaseDao.closeAll(conn, pstmt, rs); } //返回商品对象 return product; } /** * 随机查询出一条商品信息 * @return 商品对象 */ public Product findRandomProduct(){ //实例化商品对象 Product product = new Product(); //查询数据SQL语句 String sql = "SELECT TOP 1 * FROM product ORDER BY newid()"; try { //获取数据库连接 conn = BaseDao.getConn(); //执行查询操作 pstmt = conn.prepareStatement(sql); //执行数据库查询操作,封装数据 rs =pstmt.executeQuery(); //处理结果 while(rs.next()){ product.setProductID(rs.getInt("productID")); product.setSerialNumber(rs.getString("serialNumber")); product.setName(rs.getString("name")); product.setBrand(rs.getString("brand")); product.setModel(rs.getString("model")); product.setPrice(rs.getDouble("price")); product.setPicture(rs.getString("picture")); product.setDescription(rs.getString("description")); } } catch (ClassNotFoundException e) { //处理异常 e.printStackTrace(); } catch (SQLException e) { //处理异常 e.printStackTrace(); }finally{ //关闭数据库连接 BaseDao.closeAll(conn, pstmt, rs); } //返回商品对象 return product; } }
-----------------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="com.company.mycompany.dao.ProductDao" %> <%@ page import="com.company.mycompany.entity.Product" %> <%@ page import="com.company.mycompany.impl.ProductDaoImpl" %> <% //页数初始为1 int p = 1; //设置一页中显示几条商品信息 int num = 5; //获取页数 if(request.getParameter("page")!=null){ p = Integer.parseInt(request.getParameter("page")); } //如果p页数小于1,设置显示第一页 if(p < 1){ out.print("<script> alert('已经到达最前一页!');</script>"); p = 1; } //获取商品接口的实现对象 ProductDao productDao = new ProductDaoImpl(); //用来保存商品对象列表 List productList = productDao.findAllProduct(p,num); //设置显示为最后一页 if(productList.size() == 0){ p = p - 1; out.print("<script> alert('已经到达最后一页!'); </script>"); productList = productDao.findAllProduct(p,num); } %> <html> <head> <title>商品展示</title> <style type="text/css"> <!-- /*商品展示表格边框样式*/ .boxBorder{ border-width:1px; border-style:solid; border-color:#CCCCCC; } /*链接无下划线样式*/ a{ text-decoration:none; } --> </style> <link href="../css/style.css" type="text/css" rel="stylesheet"> </head> <body> <table align="center" width="900" border="0" cellspacing="0" cellpadding="0"> <tr><td> <%-- 头部 --%> <%@ include file="../include/top.inc" %> </td></tr> <tr><td class="A.dong10"> <a href="../index/index.jsp">首页</a> > 商品展示 </td></tr> <tr><td valign="top"> <table border="0" width="900"> <tr> <%-- 左边 --%> <td valign="top" width="180"> <%@ include file="../include/left.inc" %> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> </td> <%-- 中间 虚线 --%> <td height="100%" width="1" bgcolor="#CCCCCC"></td> <%-- 右边 --%> <td valign="top"> <% for(int i=0; i<productList.size(); i++){ Product product = (Product)productList.get(i); %> <table width="700" border="0"> <tr> <td width="160" align="center"> <a href="detailproduct.jsp?productID=<%=product.getProductID() %>"> <img src="../image/<%=product.getPicture() %>" style="border:0px;"> </a> </td> <td width="540" align="center"><table width="480" height="106" class="boxBorder"> <tr> <td align="center" valign="middle"><table width="464" height="88" cellpadding="0" cellspacing="0" class="boxBorder"> <tr> <td width="103" align="center" bgcolor="#F0F0F0"> 产品名称</td> <td width="103"> <a href="detailproduct.jsp?productID=<%=product.getProductID() %>"> <%=product.getName() %> </a> </td> <td width="103" align="center" bgcolor="#F0F0F0"> 产品品牌</td> <td width="104"><span class="STYLE1"> <%=product.getBrand() %></span></td> </tr> <tr> <td height="2" colspan="4" bgcolor="#CCCCCC"></td> </tr> <tr> <td align="center" bgcolor="#F0F0F0">产品型号</td> <td> <%=product.getModel() %></td> <td align="center" bgcolor="#F0F0F0">产品价格</td> <td><span class="STYLE1"> <%=product.getPrice() %></span>元</td> </tr> </table></td> </tr> </table></td> </tr> </table> <% } %> </td> </tr> </table> </td></tr> <%-- 翻页 --%> <tr> <td colspan="3" align="right"> <a href="showproductlist.jsp?page=<%=p-1 %>">上一页</a>|<a href="showproductlist.jsp?page=<%=p+1 %>">下一页</a> </td> </tr> <%-- 底部 --%> <tr> <td height="35" width="900" background="../image/d_r11_15.jpg"></td> </tr> </table> </body> </html>
----------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="GBK" %> <%@ include file="checkLogin.jsp" %> <html> <head> <title>添加商品信息</title> <style type="text/css"> /*添加商品表格边框样式*/ .border{ border-width:1px; border-style:solid; border-color:#698CC3; border-collapse:collapse; } </style> <script type="text/javascript"> /* 验证添加的商品信息 */ function checkProduct(){ var serialNumber = document.getElementById("serialNumber").value; var name = document.getElementById("name").value; var brand = document.getElementById("brand").value; var model = document.getElementById("model").value; var price = document.getElementById("price").value; var description = document.getElementById("description").value; //判断商品编号是否为空 if(serialNumber == null || serialNumber == "" || isNull(serialNumber)){ alert("商品编号不能为空!"); return false; } //商品编号中是否有空格 if(middleisNull(serialNumber)){ alert("商品编号中有空格!"); return false; } //判断商品名称是否为空 if(name == null || name == "" || isNull(name)){ alert("商品名称不能为空!"); return false; } //商品名称中是否有空格 if(middleisNull(name)){ alert("商品名称中有空格!"); return false; } //判断商品商标是否为空 if(brand == null || brand == "" || isNull(brand)){ alert("商品商标不能为空!"); return false; } //商品商标中是否有空格 if(middleisNull(brand)){ alert("商品商标中有空格!"); return false; } //判断商品型号是否为空 if(model == null || model == "" || isNull(model)){ alert("商品型号不能为空!"); return false; } //商品型号中是否有空格 if(middleisNull(model)){ alert("商品型号中有空格!"); return false; } //判断商品价格是否为空 if(price == null || price == "" || isNull(price)){ alert("商品价格不能为空!"); return false; } //判断商品价格是否为数字 if(isNaN(price)){ alert("商品价格必须为数字!"); return false; } //判断商品介绍是否为空 if(description == null || description == "" || isNull(description)){ alert("商品介绍不能为空!"); return false; } //判断商品介绍的字符长度 if(description.length > 365){ alert("长度必须小于365个字符!"); return false; } return true; } /* 检测字符串是否为空 */ function isNull(str) { var i; var strTmp; strTmp=str; for (i=0;i<strTmp.length;i++) { if (strTmp.charAt(i)!=' ') return false; } return true; } /* 检测字符串中是否有空格 */ function middleisNull(str) { var i; var strTmp = str; for (i=0;i<strTmp.length;i++) { if (strTmp.charAt(i)==' ') return true; } return false; } /*自动生成编号*/ function createNumber(){ var array = new Array(); for(i = 0 ; i < 5 ; i++){ if(Math.ceil(Math.random() * 3) == 2){ array[i] = Math.ceil(Math.random() * 9); } else { array[i] = String.fromCharCode(Math.ceil(Math.random() * 26) + 64); } } document.getElementById("serialNumber").value = array[0]+array[1]+array[2]+array[3]+array[4]; } </script> </head> <body bgcolor="#B3CAEE"> <form name="myform" method="post" action="doAddProduct.jsp" onSubmit="return checkProduct()"> <table width="98%" height="365" border="1" cellpadding="0" cellspacing="0" align="center" class="border"> <tr> <td height="24" colspan="2" bgcolor="#698CC3" class="border" style="color:#FFFFFF"> <strong>添加商品信息</strong></td> </tr> <tr> <td width="200" bgcolor="#EFEFEF" class="border"> 商品编号(系列):</td> <td width="598" class="border" bgcolor="#edf1f8"> <input type="text" name="serialNumber" id="serialNumber" maxlength="10" style="height: 25;width: 200"> <input type="button" name="number" id="number" value="自动生成编号" onclick="createNumber()"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品名称:</td> <td class="border" bgcolor="#edf1f8"> <input type="text" name="name" id="name" maxlength="10" style="height: 25;width: 200"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品商标:</td> <td class="border" bgcolor="#edf1f8"> <input type="text" name="brand" id="brand" maxlength="10" style="height: 25;width: 200"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品型号:</td> <td class="border" bgcolor="#edf1f8"> <input type="text" name="model" id="model" maxlength="10" style="height: 25;width: 200"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品价格:</td> <td class="border" style="color: red" bgcolor="#edf1f8"> <input type="text" name="price" id="price" maxlength="7" style="height: 25;width: 200"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品图片:</td> <td class="border" style="color: red;" bgcolor="#edf1f8"> <input type="text" name="picture" id="picture" maxlength="24" style="height: 25;width: 200"> (可以不填写,默认图片名称为zanwu.jpg) </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品介绍:</td> <td class="border" bgcolor="#edf1f8"> <textarea name="description" id="description" cols="60" rows="8"></textarea> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> </td> <td class="border" bgcolor="#edf1f8"> <input type="submit" name="Submit" value="提交"> <input type="reset" name="Submit2" value="重置"> </td> </tr> </table> </form> </body> </html>
-------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="com.company.mycompany.dao.ProductDao" %> <%@ page import="com.company.mycompany.entity.Product" %> <%@ page import="com.company.mycompany.impl.ProductDaoImpl" %> <%-- 删除商品处理页面 --%> <%@ include file="checkLogin.jsp" %> <% //指定编码格式为GBK request.setCharacterEncoding("GBK"); //获取商品接口实现对象 ProductDao productDao = new ProductDaoImpl(); int num = 0; //获取到一个数组,存储的是选中的复选框的值 String [] param = request.getParameterValues("product"); num = productDao.deleteProductByID(param); //判断商品是否删除成功 if(num > 0){ out.print("<script> alert('删除商品信息成功!'); location.href('manageProduct.jsp');</script>"); }else{ out.print("<script> alert('此商品信息已经被其他管理员删除!'); location.href('manageProduct.jsp');</script>"); } %> ---------------------------------------------------------------------------------------------- <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="com.company.mycompany.dao.ProductDao" %> <%@ page import="com.company.mycompany.entity.Product" %> <%@ page import="com.company.mycompany.impl.ProductDaoImpl" %> <%-- 修改商品处理页面 --%> <%@ include file="checkLogin.jsp" %> <% //指定编码格式为GBK request.setCharacterEncoding("GBK"); //获取用户输入的信息 int productID =Integer.parseInt(request.getParameter("productID")); String serialNumber = request.getParameter("serialNumber"); String name = request.getParameter("name"); String brand = request.getParameter("brand"); String model = request.getParameter("model"); double price = Double.parseDouble(request.getParameter("price")); //定义变量存储商品图片名称 String picture =""; //设置商品图片名称,判断是否填写了商品图片名称,如果没有填写,则设置图片名称为zanwu.jpg if(request.getParameter("picture") == ""){ picture = "zanwu.jpg"; }else{ picture = request.getParameter("picture"); } String description = request.getParameter("description"); //获取商品接口的实现对象 ProductDao productDao = new ProductDaoImpl(); //实例化商品对象,封装数据 Product product = new Product(); product.setProductID(productID); product.setSerialNumber(serialNumber); product.setName(name); product.setBrand(brand); product.setModel(model); product.setPrice(price); product.setPicture(picture); product.setDescription(description); //获取修改商品的条数 int num = productDao.updateProduct(product); //判断商品是否修改成功 if(num == 1){ out.print("<script>alert('修改商品信息成功!');location.href('manageProduct.jsp');</script>"); }else{ out.print("<script>alert('修改商品信息失败!');location.href('updateProduct.jsp');</script>"); } %>
----------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="GBK" %> <%@ page import="com.company.mycompany.dao.ProductDao" %> <%@ page import="com.company.mycompany.entity.Product" %> <%@ page import="com.company.mycompany.impl.ProductDaoImpl" %> <%@ include file="checkLogin.jsp" %> <% //指定编码格式为GBK request.setCharacterEncoding("GBK"); //获取商品id int productID =Integer.parseInt(request.getParameter("productID")); //获取商品接口的实现对象 ProductDao productDao = new ProductDaoImpl(); //根据商品id查找相关商品信息 Product product = productDao.findProductByID(productID); //设置显示的图片 String picture = ""; %> <html> <head> <title>修改商品信息</title> <style type="text/css"> /*修改商品表格边框样式*/ .border{ border-width:1px; border-style:solid; border-color:#698CC3; border-collapse:collapse; } </style> <script type="text/javascript"> /* 验证添加的商品信息 */ function checkProduct(){ var serialNumber = document.getElementById("serialNumber").value; var name = document.getElementById("name").value; var brand = document.getElementById("brand").value; var model = document.getElementById("model").value; var price = document.getElementById("price").value; var description = document.getElementById("description").value; //判断商品编号是否为空 if(serialNumber == null || serialNumber == "" || isNull(serialNumber)){ alert("商品编号不能为空!"); return false; } //商品编号中是否有空格 if(middleisNull(serialNumber)){ alert("商品编号中有空格!"); return false; } //判断商品名称是否为空 if(name == null || name == "" || isNull(name)){ alert("商品名称不能为空!"); return false; } //商品名称中是否有空格 if(middleisNull(name)){ alert("商品名称中有空格!"); return false; } //判断商品商标是否为空 if(brand == null || brand == "" || isNull(brand)){ alert("商品商标不能为空!"); return false; } //商品商标中是否有空格 if(middleisNull(brand)){ alert("商品商标中有空格!"); return false; } //判断商品型号是否为空 if(model == null || model == "" || isNull(model)){ alert("商品型号不能为空!"); return false; } //商品型号中是否有空格 if(middleisNull(model)){ alert("商品型号中有空格!"); return false; } //判断商品价格是否为空 if(price == null || price == "" || isNull(price)){ alert("商品价格不能为空!"); return false; } //判断商品价格是否为数字 if(isNaN(price)){ alert("商品价格必须为数字!"); return false; } //判断商品介绍是否为空 if(description == null || description == "" || isNull(description)){ alert("商品介绍不能为空!"); return false; } //判断商品介绍的字符长度 if(description.length > 365){ alert("长度必须小于365个字符!"); return false; } return true; } /* 检测字符串是否为空 */ function isNull(str) { var i; var strTmp; strTmp=str; for (i=0;i<strTmp.length;i++) { if (strTmp.charAt(i)!=' ') return false; } return true; } /* 检测字符串中是否有空格 */ function middleisNull(str) { var i; var strTmp = str; for (i=0;i<strTmp.length;i++) { if (strTmp.charAt(i)==' ') return true; } return false; } /*自动生成编号*/ function createNumber(){ var array = new Array(); for(i = 0 ; i < 5 ; i++){ if(Math.ceil(Math.random() * 3) == 2){ array[i] = Math.ceil(Math.random() * 9); } else { array[i] = String.fromCharCode(Math.ceil(Math.random() * 26) + 64); } } document.getElementById("serialNumber").value = array[0]+array[1]+array[2]+array[3]+array[4]; } </script> </head> <body bgcolor="#B3CAEE"> <form name="myform" method="post" onsubmit="return checkProduct()" action="doUpdateProduct.jsp?productID=<%=productID %>"> <table width="98%" height="365" border="1" cellpadding="0" cellspacing="0" align="center" class="border"> <tr> <td height="24" colspan="2" bgcolor="#698CC3" class="border" style="color:#FFFFFF"> <strong>修改商品信息</strong></td> </tr> <tr> <td width="200" bgcolor="#EFEFEF" class="border"> 商品编号(系列):</td> <td width="598" class="border" bgcolor="#edf1f8"> <input type="text" name="number" disabled="disabled" id="number" maxlength="10" style="height: 25;width: 200" value="<%=product.getSerialNumber() %>"> <input type="hidden" name="serialNumber" id="serialNumber" maxlength="10" style="height: 25;width: 200" value="<%=product.getSerialNumber() %>"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品名称:</td> <td class="border" bgcolor="#edf1f8"> <input type="text" name="name" id="name" maxlength="10" style="height: 25;width: 200" value="<%=product.getName() %>"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品商标:</td> <td class="border" bgcolor="#edf1f8"> <input type="text" name="brand" id="brand" maxlength="10" style="height: 25;width: 200" value="<%=product.getBrand() %>"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品型号:</td> <td class="border" bgcolor="#edf1f8"> <input type="text" name="model" id="model" maxlength="10" style="height: 25;width: 200" value="<%=product.getModel() %>"> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品价格:</td> <td class="border" bgcolor="#edf1f8"> <input type="text" name="price" id="price" maxlength="7" style="height: 25;width: 200" value="<%=product.getPrice() %>"> </td> </tr> <% if(product.getPicture() == null){ picture = ""; }else{ picture = product.getPicture(); } %> <tr> <td bgcolor="#EFEFEF" class="border"> 商品图片:</td> <td class="border" style="color: red;" bgcolor="#edf1f8"> <input type="text" name="picture" id="picture" maxlength="24" style="height: 25;width: 200" value="<%=picture %>"> (可以不填写,默认图片名称为zanwu.jpg) </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> 商品介绍:</td> <td class="border" bgcolor="#edf1f8"> <textarea name="description" id="description" cols="60" rows="8" ><%=product.getDescription() %></textarea> </td> </tr> <tr> <td bgcolor="#EFEFEF" class="border"> </td> <td class="border" bgcolor="#edf1f8"> <input type="submit" name="Submit" value="提交"> <input type="reset" name="Submit2" value="重置"> </td> </tr> </table> </form> </body> </html>
------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="GBK" %> <%@ page import="com.company.mycompany.dao.ProductDao" %> <%@ page import="com.company.mycompany.entity.Product" %> <%@ page import="com.company.mycompany.impl.ProductDaoImpl" %> <%@ include file="checkLogin.jsp" %> <% //设置一页中显示几条商品信息 int num = 10; //页数初始为1 int p = 1; //判断页数是否存在 if(request.getParameter("page")!=null){ p = Integer.parseInt(request.getParameter("page")); } //如果p页数小于1,设置显示第一页 if(p < 1){ p = 1; } //获取商品接口的实现对象 ProductDao productDao = new ProductDaoImpl(); //用来保存商品对象列表 List productList = productDao.findAllProduct(p,num); //设置显示为最后一页 if(productList.size() == 0){ p = p - 1; productList = productDao.findAllProduct(p,num); } int number; %> <html> <head> <title>商品管理</title> <style type="text/css"> /*表格边框样式*/ .border{ border-width:1px; border-style:solid; border-color:#698CC3; border-collapse:collapse; font-size: 15px; } /*下划线链接样式*/ A{ color:blue; text-decoration:none; } A:hover{ color:red; text-decoration:none; } .STYLE1 {font-size: 12px} </style> <script language="javascript"> /*全选、全不选方法*/ function selectAll(boolValue){ var allCheckBoxs=document.getElementsByName("product"); for(var i=0;i<allCheckBoxs.length;i++){ //判断是否是复选框 if(allCheckBoxs[i].type=="checkbox") { allCheckBoxs[i].checked=boolValue; } } } /*反选方法*/ function reverseSelect(){ var allCheckBoxs=document.getElementsByName("product"); for(var i=0;i<allCheckBoxs.length;i++){ //判断是否是复选框 if(allCheckBoxs[i].type=="checkbox") { allCheckBoxs[i].checked=!allCheckBoxs[i].checked; } } } /*判断是否最少选择了一项。提交数据*/ function deletes(){ var num =0; var allCheckBoxs=document.getElementsByName("product"); for(var i=0;i<allCheckBoxs.length;i++){ //判断是否是复选框 if(allCheckBoxs[i].type=="checkbox") { if(allCheckBoxs[i].checked){ num = num+1; } } } //没有选择复选框 if(num == 0){ alert("请选择要删除的数据!"); }else{ //是否确认删除 if(confirm("您确认要删除吗?")){ //手动调用submit()方法提交数据 document.myform.submit(); } } } </script> </head> <body bgcolor="#B3CAEE"> <form name="myform" action="doDeleteProduct.jsp" method="post"> <table width="98%" height="113" border="1" align="center" cellpadding="0" cellspacing="0" class="border"> <tr> <td height="23" colspan="7" bgcolor="#698CC3" class="border" style="color:#FFFFFF"> <strong>商品管理</strong></td> </tr> <tr> <td width="11%" height="30" align="center" bgcolor="#EFEFEF" class="border"><strong>商品编号</strong></td> <td width="11%" height="30" align="center" bgcolor="#EFEFEF" class="border"><strong>商品名称</strong></td> <td width="11%" height="30" align="center" bgcolor="#EFEFEF" class="border"><strong>商品商标</strong></td> <td width="11%" height="30" align="center" bgcolor="#EFEFEF" class="border"><strong>商品型号</strong></td> <td width="11%" height="30" align="center" bgcolor="#EFEFEF" class="border"><strong>商品价格</strong></td> <td width="11%" height="30" align="center" bgcolor="#EFEFEF" class="border"><strong>修改</strong></td> <td height="30" align="center" bgcolor="#EFEFEF" class="border" style="color: red"> <a href="javascript: selectAll(true)">全选</a> / <a href="javascript: selectAll(false)">全不选</a> / <a href="javascript: reverseSelect()">反选</a> / <a href="javascript: deletes()">删除选中</a> </td> </tr> <% for(int i=0; i<productList.size(); i++){ Product product = (Product)productList.get(i); %> <tr> <td align="center" class="border" height="30" bgcolor="#edf1f8"><%=product.getSerialNumber() %></td> <td align="center" class="border" height="30" bgcolor="#edf1f8"><%=product.getName() %></td> <td align="center" class="border" height="30" bgcolor="#edf1f8"><%=product.getBrand() %></td> <td align="center" class="border" height="30" bgcolor="#edf1f8"><%=product.getModel() %></td> <td align="center" class="border" height="30" bgcolor="#edf1f8"><%=product.getPrice() %></td> <td align="center" class="border" height="30" bgcolor="#edf1f8"> <a href="updateProduct.jsp?productID=<%=product.getProductID() %>">修改</a> </td> <td align="center" class="border" height="30" bgcolor="#edf1f8"><label> <input type="checkbox" name="product" value="<%=product.getProductID() %>"> </label></td> </tr> <% } %> <tr> <td colspan="7" align="right" height="30" bgcolor="#edf1f8"> <a href="manageProduct.jsp?page=<%=p-1 %>">上一页</a> | <a href="manageProduct.jsp?page=<%=p+1 %>">下一页</a> </td> </tr> </table> </form> </body> </html>
------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="com.company.mycompany.dao.ProductDao" %> <%@ page import="com.company.mycompany.entity.Product" %> <%@ page import="com.company.mycompany.impl.ProductDaoImpl" %> <%-- 添加商品处理页面 --%> <%@ include file="checkLogin.jsp" %> <% //指定编码格式为GBK request.setCharacterEncoding("GBK"); //获取用户输入的信息 String serialNumber = request.getParameter("serialNumber"); String name = request.getParameter("name"); String brand = request.getParameter("brand"); String model = request.getParameter("model"); double price = Double.parseDouble(request.getParameter("price")); //定义变量存储商品图片名称 String picture =""; //设置商品图片名称。判断是否填写了商品图片名称,如果没有填写,则设置图片名称为zanwu.jpg if(request.getParameter("picture") == ""){ picture = "zanwu.jpg"; }else{ picture = request.getParameter("picture"); } String description = request.getParameter("description"); //获取商品接口的实现对象 ProductDao productDao = new ProductDaoImpl(); //判断要添加的商品的商品编号是否已经存在 Product product1 = productDao.findProductByNumber(serialNumber); if(product1.getName() != null){ out.print("<script> alert('此商品编号已经存在!//n//n请另外选择一个名称!');location.href('addProduct.jsp');</script>"); return; } //实例化商品对象,封装数据 Product product = new Product(); product.setSerialNumber(serialNumber); product.setName(name); product.setBrand(brand); product.setModel(model); product.setPrice(price); product.setPicture(picture); product.setDescription(description); //获得添加商品的条数 int num = productDao.addProduct(product); //判断商品是否添加成功,根据是否添加成功跳转到不同的页面 if(num == 1){ out.print("<script>"+ "if(confirm('添加商品成功!//n//n是否继续添加?')){"+ "location.href('addProduct.jsp');"+ "}else{"+ "location.href('manageProduct.jsp');"+ "}</script>"); }else{ out.print("<script>alert('添加商品信息失败!');location.href('addProduct.jsp');</script>"); } %>