⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 op_book.java

📁 这个是我自己写的网上书店的管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package run;

import java.sql.*;
import java.util.Vector;
import util.*;
import book.*;
import javax.servlet.http.HttpServletRequest;

public class op_book extends Database      //此类只要负责图书的管理,包括图书的修改,查询,删除和添加等
{
	        private books abooks = new books();	                  //新的图书类
	        private javax.servlet.http.HttpServletRequest request; //建立页面请求对象
	        private boolean sqlflag = true ;		    //对接收到的数据是否正确
	        private Vector booklist;			    //显示图书列表向量数组
	        private int page = 1;				       //标记显示的页码
	        private int pageSize=10;				//标记每页显示的图书数
	        private int pageCount =0;				//标记页面总数
	        private long recordCount =0;			        //标记查询的记录总数
	        public String sqlStr="";                       //记录SQL语句
	        
	        
	        public Vector getBooklist()    //得到图书向量组      
	        {
	                return booklist;
	        }
	        public boolean getSqlflag()     //得到“对接受到的数据是否"正确的判断
	        {
	                return sqlflag;
	        }
	        public String to_String( String str)     //将字符串进行一次转换
	        {
	                try
	                {
	                        return new String(str.getBytes("gb2312"));
	                }
	                catch (Exception e)
	                {
	                        return str;
	                }
	        }
	        /**
	         * 将页面表单传来的资料分解
	         */
	public boolean getRequest(HttpServletRequest newrequest) //负责把从页面接受到的表单资料分解,并设置图书实体的相应属性。
	{
	  boolean flag = false;
	  try
	  {
		  
	     request = newrequest;
	     String ID = request.getParameter("id");
	     long bookid = 0;
	     try
	     {
	           bookid = Long.parseLong(ID);
	     }
	     catch (Exception e)
	     {
	     }
	     abooks.setId(bookid);   //设置图书的ID
	     
	     String bookname = request.getParameter("bookname");
	     if (bookname==null || bookname.equals(""))   //若图书的名称为空,则标志接受到的数据是错误的
	     {
	           bookname = "";
	           sqlflag = false;     //接受的数据是错误的标记
	     }
	     abooks.setBookName(to_String(bookname));   //设置图书的名称
	     
	     String author = request.getParameter("author");
	     if (author==null || author.equals(""))
	     {
	           author = "";
	           sqlflag = false;
	     }
	     abooks.setAuthor(to_String(author));  //设置图书的作者
	     
	     String publish = request.getParameter("publish");;
	     if (publish==null)
	     {
	           publish = "";
	     }
	     abooks.setPublish(to_String(publish));     //设置图书的出版社
	     
	     
	     String bookclass = request.getParameter("bookclass");
	     int bc = Integer.parseInt(bookclass);
	     abooks.setBookClass(bc);                    //设置图书的分类
	     
	     
	     String bookno = request.getParameter("bookno");
	     if (bookno == null)
	     {
	           bookno = "";
	     }
	     abooks.setBookNo(to_String(bookno));       //设置图书的编号
	     
	     
	     String picture = request.getParameter("picture");
	     if (picture == null)
	     {
	           picture = "images/01.gif";
	     }
	     abooks.setPicture(to_String(picture));         //设置图书的图片
	     
	     
	     float price;
	     try	
	     {
	           price =new Float(request.getParameter("price")).floatValue();
	     } 
	     catch (Exception e)
	     {
	           price = 0;
	           sqlflag = false;
	     }
	     abooks.setPrince(price);       //设置图书的价格
	     
	     
	     int amount;
	     try
	     {
	           amount = new Integer(request.getParameter("amount")).intValue();
	     }
	     catch (Exception e)
	     {
	           sqlflag = false;
	           amount = 0;
	     }
	     abooks.setAmount(amount);       //设置图书的数量
	     
	     int leav_number;
	     try
	     {
	    	 leav_number = new Integer(request.getParameter("leav_number")).intValue();
	     }
	     catch (Exception e)
	     {
	           sqlflag = false;
	           leav_number = 0;
	     }
	     abooks.setLeav_number(leav_number);       //设置图书的剩余数量
	     
	     
	     String content = request.getParameter("content");
	     if (content == null)
	     {
	           content = "";
	     }
	     abooks.setContent(to_String(content));     //设置图书的简介
	     
	     
	     if (sqlflag)
	     {
	           flag = true;    //图书名、作者、价格和数量不能为空,否则接受到的数据就为空,返回的就是一个错误的数据
	     }
	     return flag;
	   }
	   catch (Exception e)
	   {
	   
		   return flag;
	   }
	}
	        /**
	         * 获得查询图书类别的sql语句
	         * @return
	         */
	public String getSql() 
	{
	   sqlStr = "select id,classname from book order by id";     //根据图书表里图书的ID和名称,并且按照ID的升序来查询图书。
	   return sqlStr;
	}
	
	
	        /**
	         * 完成图书查询,包括分类,分页查询
	         * @param res
	         * @return
	         * @throws java.lang.Exception
	         */
	public boolean book_search(HttpServletRequest res) throws Exception  //负责图书的查询,包括图书的分类、分页、关键字查询。
	{
	   Database db = new Database();
	   db.connect();
	   sm = db.conn.createStatement ();
	   request = res;
	   String PAGE = request.getParameter("page");   //页码
	   String classid = request.getParameter("classid");	//分类ID号
	   String keyword = request.getParameter("keyword");	//查询关键词
	   if (classid==null) classid="";
	   if (keyword==null) keyword = "";
	   keyword = to_String(keyword).toUpperCase();   //所有字符串转换成大写
	   try 
	   {
	           page = Integer.parseInt(PAGE);     //将页码转换成整数
	   }
	   catch (NumberFormatException e)
	   {
	           page = 1;                  //若出错则将页码赋值为1
	   }
	   
	   //取出记录数
	   if (!classid.equals("") && keyword.equals("") )   //按类别来查询
	   {
	           sqlStr = "select count(*) from book where bookclass='"+classid + "'";   //根据数的类别号来查询
	   }
	   else if (!keyword.equals("")) 
	   {
	      if (classid.equals(""))   //按关键字来查询
	      {
	           sqlStr = "select count(*) from book where upper(bookname) like '%" +
	                    keyword+ "%' or upper(content) like '%" + keyword + "%'";   //根据内容或者书名来查询
	      } 
	      else      //按类别和关键字来查询
	      {
	          sqlStr = "select count(*) from book where bookclass='" + classid
	                   + "' and  (upper(bookname) like '%" +keyword+ "%' or "+
	                   "upper(content) like '%" + keyword + "%')";   //根据书的类别号、书名和书的简介来查询
	      }
	   } 
	   else      //查询所有的书籍
	   {
	           sqlStr = "select count(*) from book";       //直接查询所有的书
	   }
	   
	   
	   int rscount = pageSize;  //每页显示的图书数  pageSize=10
	   
	   
	   try 
	   {
	           ResultSet rs1 = sm.executeQuery(sqlStr);
	           if (rs1.next()) recordCount = rs1.getInt(1);   //根据查询的条件查找出查询的记录总数
	           rs1.close();
	   }
	   catch (SQLException e)
	   {
	           System.out.println(e.getMessage());
	           return false;
	   }
	   
	   
	   //设定有多少pageCount,意思就是有多少页
	   if (recordCount < 1)
	            pageCount = 0;     //没有找到的话就是0页
	   else
	            pageCount = (int)((recordCount - 1) / pageSize) + 1;
	   
	   //检查查看的页面数是否在范围内
	   if (page < 1)
	            page = 1;
	  else if (page > pageCount)
	  {
	            page = pageCount;         //若输入的页数大于总页数,
	            rscount = (int) recordCount % pageSize;	 // 最后一页记录数,因为最后一页有可能显示的不是一整页
	  }
	            
	            
	   //sql为倒序取值
	   sqlStr = "select a.id,a.bookname,a.bookclass,b.classname,"+
	           "a.author,a.publish,a.bookno,a.content,a.prince,a.amount,"+
	           "a.Leav_number,a.regtime,a.picture from book a,bookclass b"+
	          " where a.Bookclass = b.Id ";    //根据图书表和图书类别表来查询图书
	  if (!classid.equals("") && keyword.equals("") )   //如果按类别来查询
	  {  
	           if (page == 1)
	           {
	               sqlStr = sqlStr + " and a.bookclass='" + classid + "' "+
	               "order by a.Id desc";      //如果查询的第一页,直接按降序排列查询即可
	           } 
	           else 
	           {
	        	   if((recordCount-pageSize * (page-1))>=pageSize)     //若不是最后一页,每页显示10条记录
	        	   {
	        		   sqlStr = sqlStr + "limit "+pageSize*(page-1)+","+pageSize;
	        	   }
	        	   else
	        	   {
	        		   sqlStr = sqlStr + "limit "+pageSize*(page-1)+","+
			              (recordCount-pageSize * (page-1));
	        	   }
	        	  
	           }
	  } 
	  else if (!keyword.equals("")) 
	  {  //如果是查询资料
	    if (page == 1)
	    {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -