备用

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>");
 }
%>

你可能感兴趣的:(java,jsp,servlet,jdbc)