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

📄 book_query.java

📁 用J2EE开发的网站,可以应用到图书馆,图书超市
💻 JAVA
字号:
package ksnb;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
public class book_query extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=gb2312";

    ResultSet rs;

    String Id;         //书Id
    String Catalog_Id; //分类id
    String Name;      //书名
    String Author;    //作者
    String Price;      //价格
    String Book_Concern;    //出版社
    String discount;    //会员打折率
    String ISBN;         //书的ISBN号
    String Keywords;     //关键字
    String Importance_Show;  //推荐级别
    String Click;         //被点击次数
    String Purchase_num;   //被购次数
    String Date_time;      //上架时间
    String Page_Count;     //页数
    String Counts;        //库存量
    String Description;



    //Initialize global variables
    public void init() throws ServletException {
    }

    //Process the HTTP Post request
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
        String button = request.getParameter("button");
        String BFG=request.getParameter("ground");
        String lofty_query = "lofty_query";//高级查询
        String query = "query";            //普通查询
        String BG="background";            //后台
        String FG="foregrounding";         //foregrounding前台操作


        Collection c=new ArrayList();
        transform tf=new transform();
        boolean dd;
        HttpSession session=request.getSession(true);

        if (button.equals(query))
        {
            Querybooks qb=new Querybooks();
            String keyword = request.getParameter("keyword");
            keyword=tf.GBK(keyword);
            String selectsql ="select * from Shop_Product_Info where (Name like '%" + keyword +"%') or (Author like '%" + keyword +"%' ) or (Book_Concern like '%" + keyword + "%' )";


            try
            {
                System.out.println(selectsql);        //输出查询时给SQL的语句
                rs = qb.query(selectsql);
                if (BFG.equals(FG))                  //判断是否为后台
                {
                    System.out.println(selectsql);
                    while (rs.next())
                    { //此处必须使用while,使用if,只以可读取一条记录
					    String id=String.valueOf(rs.getInt("id"));
						c.add(id);
                        Name = rs.getString("Name");
                        c.add(Name);
                        System.out.println("++++++++++++++++++++++++");
                        System.out.println(selectsql);
                        Author = rs.getString("Author");
                        c.add(Author);
                        Book_Concern = rs.getString("Book_Concern");
                        c.add(Book_Concern);
                        Price = String.valueOf(rs.getFloat("Price"));
                        c.add(Price);
                    }
                }
            }
          catch (Exception e)
                {
                    System.out.println(e.toString());
                }
               request.setAttribute("cc", c);

               if (BFG.equals(FG))    //转发到前台用户的Book_Message.jsp
               {
                   RequestDispatcher rd = request.getRequestDispatcher("Book_Message.jsp");    //实行转发
                   rd.forward(request, response);
               }
               if(BFG.equals(BG))
               {
                   RequestDispatcher rd = request.getRequestDispatcher("BG_bookmessage.jsp");    //实行转发
                   rd.forward(request, response);
               }

               qb.close();
        }







        if(button.equals(lofty_query))
        {
            //??如何判断一个没有任何值的String 对象.可以尝试先生成一个同样没有任何值的对象,再用equals进行匹配
            String Name=request.getParameter("Name");            //书名
            Name=tf.GBK(Name.trim());

            String Author=tf.GBK (request.getParameter("Author").trim());   //作者
            String Book_Concern=tf.GBK(request.getParameter("Book_Concern").trim());  //出版社

            float min_Price=Float.parseFloat(tf.GBK(request.getParameter("min_Price").trim()));//最小价格
            if(min_Price<1)
            {
                min_Price=1;
            }

            float max_Price=Float.parseFloat(tf.GBK(request.getParameter("max_Price").trim()));  //最大价格
            if(max_Price<min_Price)
            {
                max_Price=10000;
            }

            int Catalog_Id=Integer.parseInt(tf.GBK(request.getParameter("Catalog_Id").trim())); //分类

            int Page_Count=Integer.parseInt(tf.GBK(request.getParameter("Page_Count").trim()));  //页数
            if(Page_Count<30)
            {
                Page_Count=10000;
            }

            String selectsql="select * from Shop_Product_Info where ";
            selectsql=selectsql+"Name like '%"+Name+"%' "+"and Author like'%" + Author +"%' "+"and Book_Concern like'%" + Book_Concern +"%' "+" and Page_Count<="+Page_Count;
            selectsql=selectsql+" and Price>="+min_Price+" and price<="+max_Price;
            if(Catalog_Id>0)
            {
                selectsql=selectsql+"and Catalog_Id =" + Catalog_Id;
            }
            System.out.println("你输入的查询书籍的语句是:"+selectsql);
            Querybooks qb=new Querybooks();
            try
            {
                rs = qb.query(selectsql);
                System.out.println(selectsql);
                if (BFG.equals(FG))                  //判断是否为后台
                  {
                      System.out.println(selectsql);
                      while (rs.next())
                      { //此处必须使用while,使用if,只以可读取一条记录
                           String id=String.valueOf(rs.getInt("id"));
						  c.add(id);
						  Name = rs.getString("Name");
                          c.add(Name);
                          System.out.println(selectsql);
                          Author = rs.getString("Author");
                          c.add(Author);
                          Book_Concern = rs.getString("Book_Concern");
                          c.add(Book_Concern);
                          Price = String.valueOf(rs.getFloat("Price"));
                          c.add(Price);
                      }
                  }
                  System.out.println(selectsql);
                  if(BFG.equals(BG))                //判断是否为后台
                  {
                      while (rs.next()) { //此处必须使用while,使用if,只以可读取一条记录
                          Catalog_Id=rs.getInt("Catalog_Id"); //分类id
                          String cid=String.valueOf( Catalog_Id);
                          c.add(cid);

                          Id = rs.getString("Id");//用于超链接时传递参数


                          Name = rs.getString("Name");
                          c.add(Name);

                          Author = rs.getString("Author");
                          c.add(Author);

                          Keywords = rs.getString("Keywords"); //关键字
                          c.add(Keywords);

                          Book_Concern = rs.getString("Book_Concern"); //出版社
                          c.add(Book_Concern);

                          Price = String.valueOf(rs.getFloat("Price"));
                          c.add(Price);

                          discount = rs.getString("discount"); //会员打折率
                          c.add(discount);

                          ISBN = rs.getString("ISBN"); //书的ISBN号
                          c.add(ISBN);

                          Importance_Show = rs.getString("Importance_Show"); //推荐级别
                          c.add(Importance_Show);

                          Click = rs.getString("Click"); //被点击次数
                          c.add(Click);
                                             Purchase_num = rs.getString("Purchase_num"); //被购次数
                          c.add(Purchase_num);
                          Date_time = rs.getString("Date_time"); //上架时间
                          c.add(Date_time);
                          Page_Count = rs.getInt("Page_Count"); //页数,因为获取的是int的值,所以使用getInt
                          //String Pc=String.valueOf( );//因为c 必须放入的是一个对象,所以必须进行轮换
                          Integer pp=Integer.valueOf(Page_Count);
                          c.add(pp);
                          Counts = rs.getString("Counts"); //库存量
                          c.add(Counts);
                          Description=rs.getString("Description");

                        c.add(Id);
                        c.add(cid);
                        c.add(Name);
                        c.add(Author);
                        c.add(Price);
                        c.add(Book_Concern);
                        c.add(Keywords);
                        c.add(discount);
                        c.add(ISBN);
                        c.add(Importance_Show);
                        c.add(Click);
                        c.add(Purchase_num);
                        c.add(Date_time);
                        c.add(pp);
                        c.add(Counts);
                        c.add(Description);
                        c.add(Id);
                        c.add(Id);
                      }
                  }


            } catch (Exception e) {
                qb.close();
                System.out.println("在book_query的servlet中出现错误,数据库已关闭!");
                System.out.println("在book_query的servlet中出现错误,原因:"+e.toString());
            }
               request.setAttribute("cc", c);
               if (BFG.equals(FG))    //转发到前台用户的Book_Message.jsp
               {
                   RequestDispatcher rd = request.getRequestDispatcher("Book_Message.jsp");    //实行转发
                   rd.forward(request, response);
               }
               if(BFG.equals(BG))
               {
                   RequestDispatcher rd = request.getRequestDispatcher("BG_bookmessage.jsp");    //实行转发
                   rd.forward(request, response);
               }

               qb.close();
        }
    }



    //Clean up resources
    public void destroy() {
    }
}

⌨️ 快捷键说明

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