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

📄 productsearchmenu.java

📁 ACCP 软件工程java 教程学生用书
💻 JAVA
字号:
/**
 * (c)北大青鸟APTECH
 * 版权所有
 */


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.PreparedStatement;

/**
 * 这个类使用 Prepared Statement 搜索记录.
 * @version 1.0, 2005 年 6 月 15 日
 * @author Michael
 */

class SearchDisplayProduct {

  /** 声明一个 statement 对象.*/
  private ResultSet rs;

  /** 声明一个 string 变量.*/
  private String strTemp, strSql;

  /** 声明一个 PreparedStatement 对象.*/
  private PreparedStatement pst;

  /** 声明一个 int 变量.*/
  private int qty;

  /** 声明一个 BufferedReader 对象.*/
  private BufferedReader bufferObj;

  /** 声明一个 connection 变量.*/
  private Connection con;

  /** 声明一个 string 变量以容纳 URL.*/
  private String url;

  /** 声明一个 string 变量以存储 serverName.*/
  private String serverName;

  /** 声明一个 string 变量以容纳端口号.*/
  private String portNumber;

  /** 声明一个 string 变量以存储数据库名称.*/
  private String databaseName;

  /** 声明一个 string 变量以存储用户名称.*/
  private String userName;

  /** 声明一个 string 变量以存储密码.*/
  private String password;

  /** 
   * 构造方法. 
   */
  public SearchDisplayProduct() {
    bufferObj = new BufferedReader(new InputStreamReader(System.in));
    con = getConnection();
  }

  /** 初始化变量的方法.
   * @return String 值
   */
  private String getConnectionUrl() {

    url = "jdbc:microsoft:sqlserver://";
    serverName = "127.0.0.1";
    portNumber = "1433";
    databaseName = "test";
    userName = "sa";
    password = "sa";
    return url + serverName + ":" + portNumber
        + ";databaseName=" + databaseName + ";";
  }

  /** 建立连接的方法.
   * @return Connection 对象
   */
  private java.sql.Connection getConnection() {

    try {
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
      con = java.sql.DriverManager.getConnection(getConnectionUrl(),
                                                 userName, password);

      if (con != null) {
        System.out.println("连接成功!");
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    return con;
  }

  /** 搜索特定产品代码的方法.
   * @throws IOException 对象
   */
  void search() throws IOException {

    String productCodeObj = "";
    System.out.print("\n请输入产品代码: ");
    productCodeObj = bufferObj.readLine();

    try {
      strSql = "Select * from Product where ProductCode like ?";
      pst = con.prepareStatement(strSql,
                                 ResultSet.TYPE_SCROLL_SENSITIVE,
                                 ResultSet.CONCUR_UPDATABLE);
      productCodeObj = "%" + productCodeObj + "%";
      pst.setString(1, productCodeObj);
      rs = pst.executeQuery();

      while (rs.next()) {
        strTemp = rs.getString("ProductName");
        qty = rs.getInt("Quantity");
        System.out.println("产品名称: " + strTemp);
        System.out.println("数量" + qty);
      }
    }
    catch (SQLException ce) {
      System.out.println(ce);
    }
  }

  /** 根据数量进行搜索.
   * @throws IOException 对象
   */
  void searchAll() throws IOException {

    int quantityObj = 0;
    System.out.print("\n请输入数量: ");
    quantityObj = Integer.parseInt(bufferObj.readLine());
    System.out.println("\n根据数量"
                       + "搜索产品......");
    System.out.println();
    try {
      strSql = "select * from product where Quantity > ? ";
      pst = con.prepareStatement(strSql);
      pst.setInt(1, quantityObj);
      rs = pst.executeQuery();
      while (rs.next()) {

        System.out.println("产品代码: " + rs.getString(1));
        System.out.println("产品名称: " + rs.getString(2));
        System.out.println("数量: " + rs.getInt(3));
        System.out.println();
      }
    }
    catch (SQLException ce) {
      System.out.println(ce.getMessage());
    }
  }

  /** 显示菜单.
   * @throws IOException 对象
   */
  public void menuDisplay() throws IOException {

    char choice;

    while (true) {
      System.out.println();
      System.out.println("1.根据产品代码进行搜索");
      System.out.println("2.根据数量进行搜索");
      System.out.println("3.退出\n\n");
      System.out.print("请输入您的选择...: ");
      BufferedReader br = new BufferedReader(new
                                             InputStreamReader(System.in));
      choice = (char) br.read();

      switch (choice) {

        case '1':
          System.out.println("\n正在搜索"
                             + "特定产品......");
          search();
          break;
        case '2':
          System.out.println();
          searchAll();
          break;
        case '3':
          System.exit(0);
          break;
        default:
          System.out.println("\n请输入有效编号\n");
          break;
      }
    }
  }
}

/**
 * 测试 SearchDisplayProduct 类.
 * @version 1.0, 2005 年 5 月 20 日
 * @author Michael
 */
class ProductSearchMenu {

  /**
   * 构造方法. 
   */
  protected ProductSearchMenu() {
  }

  /**
   * 这是执行任何应用程序的起始点.
   * @param args 被传递至 main 方法
   * @throws IOException 对象
   */
  public static void main(String[] args) throws IOException {
    SearchDisplayProduct searchObj = new SearchDisplayProduct();
    searchObj.menuDisplay();

  }
}

⌨️ 快捷键说明

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