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

📄 ownerquery.java~69~

📁 java房产管理系统
💻 JAVA~69~
字号:
import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
import java.sql.*;

public class OwnerQuery
    extends JFrame {
  DefaultTableModel model = new DefaultTableModel();

//定义JTable为DefaultTableModel的实例model模式
  JTable tblResult = new JTable(model);
  //数据库操作
  DBManager db = new DBManager();
  LinkedList linkTable = new LinkedList();
  LinkedList linkItem = new LinkedList();
  LinkedList linkOper = new LinkedList();
  LinkedList linkCode = new LinkedList();
  Vector vecCode = new Vector();
  String curTable = new String();
  String curItem = new String();

  boolean isInitTable; //判断是否是初始化窗体
  boolean isInitItem; //判断是否是初始化窗体
  private String[][] sTable = {
      {
      "BuildInfo", "房产信息"}
      , {
      "HouseInfo", "住房信息"}
      , {
      "OwnerInfo", "房主基本信息"}
      , {
      "FamilyInfo", "房主家属信息"}
  };
  private String[][] sOper = {
      {
      "=", "等于"}
      , {
      ">", "大于"}
      , {
      "<", "小于"}
      , {
      "<>", "不等于"}
      , {
      "like", "类似"}
  };
//依次为:表名;字段名;字段意义;代码表名
  private String[][] sItems = {
      {
      "BuildInfo", "Location", "坐落", ""}
      , {
      "BuildInfo", "Time", "建成年代", ""}
      , {
      "BuildInfo", "Usage", "房屋用途", "HouseUsage"}
      , {
      "BuildInfo", "Number", "房屋套数", ""}
      , {
      "BuildInfo", "Type", "房屋类型", "HouseType"}
      , {
      "BuildInfo", "Area", "占地面积", ""}
      , {
      "BuildInfo", "UseArea", "使用面积", ""}
      , {
      "HouseInfo", "BuildID", "房屋坐落", ""}
      , {
      "HouseInfo", "Name", "房间号", ""}
      , {
      "HouseInfo", "Heading", "朝向", "Heading"}
      , {
      "HouseInfo", "Number", "间数", ""}
      , {
      "HouseInfo", "UseType", "使用方式", "UseType"}
      , {
      "HouseInfo", "BuyTime", "购房时间", ""}
      , {
      "HouseInfo", "BuyPrice", "购房价格", ""}
      , {
      "HouseInfo", "Area", "面积", ""}
      , {
      "HouseInfo", "YTArea", "阳台面积", ""}
      , {
      "HouseInfo", "OwnerID", "住户", ""}
      , {
      "OwnerInfo", "Name", "姓名", ""}
      , {
      "OwnerInfo", "Gender", "性别", "Gender"}
      , {
      "OwnerInfo", "Birthday", "出生年月", ""}
      , {
      "OwnerInfo", "WorkTime", "参加工作时间", ""}
      , {
      "OwnerInfo", "Org", "工作单位", ""}
      , {
      "FamilyInfo", "OwnerID", "房主姓名", ""}
      , {
      "FamilyInfo", "Name", "家属姓名", ""}
      , {
      "FamilyInfo", "Gender", "性别", "Gender"}
      , {
      "FamilyInfo", "Relation", "与房主关系", "Relation"}
      , {
      "FamilyInfo", "Birthday", "出生年月", ""}
      , {
      "FamilyInfo", "WorkTime", "参加工作时间", ""}
  };

  JButton btnExit = new JButton();
  JLabel jLabel8 = new JLabel();
  JScrollPane jScrollPane1 = new JScrollPane();
  JLabel jLabel2 = new JLabel();
  JButton btnView = new JButton();
  JComboBox cboTable = new JComboBox();
  JComboBox cboOper = new JComboBox();
  JButton btnQuery = new JButton();
  JLabel jLabel11 = new JLabel();
  JPanel jPanel1 = new JPanel();
  JComboBox cboValue = new JComboBox();
  XYLayout xYLayout2 = new XYLayout();
  JLabel jLabel10 = new JLabel();
  JComboBox cboItem = new JComboBox();
  XYLayout xYLayout1 = new XYLayout();

  public OwnerQuery() {
    try {
      jbInit();
      initForm();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }

  void jbInit() throws Exception {
    jLabel8.setText("信息集:");
    jLabel8.setRequestFocusEnabled(true);
    jLabel8.setFont(new java.awt.Font("宋体", 0, 12));
    btnExit.setText("退出");
    btnExit.addActionListener(new OwnerQuery_btnExit_actionAdapter(this));
    btnExit.setFont(new java.awt.Font("宋体", 0, 12));
    this.getContentPane().setLayout(xYLayout1);
    jLabel2.setFont(new java.awt.Font("宋体", 0, 12));
    jLabel2.setText("操作符:");
    btnView.setText("查看");
    btnView.setFont(new java.awt.Font("宋体", 0, 12));
    cboTable.setFont(new java.awt.Font("宋体", 0, 12));
    cboTable.setEditable(false);
    cboTable.addActionListener(new OwnerQuery_cboTable_actionAdapter(this));
    cboOper.setFont(new java.awt.Font("宋体", 0, 12));
    cboOper.setEditable(false);
    btnQuery.setFont(new java.awt.Font("宋体", 0, 12));
    btnQuery.setText("查询");
    btnQuery.addActionListener(new OwnerQuery_btnQuery_actionAdapter(this));
    jLabel11.setFont(new java.awt.Font("宋体", 0, 12));
    jLabel11.setText("查询值:");
    jPanel1.setBorder(BorderFactory.createEtchedBorder());
    jPanel1.setLayout(xYLayout2);
    cboValue.setFont(new java.awt.Font("宋体", 0, 12));
    cboValue.setEditable(true);
    jLabel10.setText("查询项:");
    jLabel10.setFont(new java.awt.Font("宋体", 0, 12));
    cboItem.setFont(new java.awt.Font("宋体", 0, 12));
    cboItem.setEditable(false);
    cboItem.addActionListener(new OwnerQuery_cboItem_actionAdapter(this));
    xYLayout1.setWidth(434);
    xYLayout1.setHeight(325);
    this.setState(Frame.NORMAL);
    this.setTitle("住户信息查询");
    tblResult.setFont(new java.awt.Font("宋体", 0, 12));
    jPanel1.add(jLabel8, new XYConstraints(12, 18, 68, -1));
    jPanel1.add(jLabel2, new XYConstraints(12, 57, 50, -1));
    jPanel1.add(jScrollPane1, new XYConstraints(13, 96, 366, 132));
    jScrollPane1.getViewport().add(tblResult, null);
    jPanel1.add(cboItem, new XYConstraints(235, 14, 136, -1));
    jPanel1.add(cboTable, new XYConstraints(62, 13, 112, -1));
    jPanel1.add(jLabel10, new XYConstraints(182, 18, 50, -1));
    jPanel1.add(cboOper, new XYConstraints(62, 52, 111, -1));
    jPanel1.add(jLabel11, new XYConstraints(182, 57, 50, -1));
    jPanel1.add(cboValue, new XYConstraints(234, 51, 138, -1));
    jPanel1.add(btnView, new XYConstraints(253, 243, 61, 27));
    jPanel1.add(btnExit, new XYConstraints(318, 243, 61, 27));
    jPanel1.add(btnQuery, new XYConstraints(14, 243, 61, 27));
    this.getContentPane().add(jPanel1, new XYConstraints(16, 16, 400, 289));
  }

  void initForm() {
    isInitTable = true;
    for (int i = 0; i < sTable.length; i++) {
      cboTable.addItem(sTable[i][1]);
      linkTable.add(sTable[i][0]);
    }
    for (int i = 0; i < sOper.length; i++) {
      cboOper.addItem(sOper[i][1]);
      linkOper.add(sOper[i][0]);
    }
    cboTable.setSelectedItem(null);
    cboOper.setSelectedIndex(0);
    isInitTable = false;
  }

  void btnExit_actionPerformed(ActionEvent e) {
    this.dispose();
  }

  void btnQuery_actionPerformed(ActionEvent e) {
    String sql = new String();
    if (cboTable.getSelectedIndex() < 0 || cboItem.getSelectedIndex() < 0 ||
        (cboValue.getSelectedIndex() < 0 &&
         cboValue.getEditor().getItem().toString().equals(""))) {
      CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "请构建完整的查询条件!");
      return;
    }
    sql = createSql();
    resultList(sql);
  }

  void resultList(String sql) {
    Vector tempvector;
    if (sql.indexOf("BuildInfo") != -1) {

      model.setColumnCount(0);
      model.setRowCount(0);
      model.addColumn("ID");
      model.addColumn("坐落");
      model.addColumn("建成年代");
      model.addColumn("占地面积");
      model.addColumn("使用面积");
    }
    else if (sql.indexOf("HouseInfo") != -1) {
      model.setColumnCount(0);
      model.setRowCount(0);
      model.addColumn("ID");
      model.addColumn("坐落");
      model.addColumn("房间号");
      model.addColumn("建筑面积");
      model.addColumn("阳台面积");
    }
    else if (sql.indexOf("OwnerInfo") != -1) {
      model.setColumnCount(0);
      model.setRowCount(0);
      model.addColumn("ID");
      model.addColumn("姓名");
      model.addColumn("性别");
      model.addColumn("出生年月");
      model.addColumn("参加工作时间");
      model.addColumn("工作单位");
    }
    else if (sql.indexOf("OwnerInfo") != -1) {
      model.setColumnCount(0);
      model.setRowCount(0);
      model.addColumn("ID");
      model.addColumn("房主姓名");
      model.addColumn("家属姓名");
      model.addColumn("性别");
      model.addColumn("与房主关系");
      model.addColumn("出生年月");
      model.addColumn("参加工作时间");
    }
    try {
      ResultSet rs = db.getResult(sql);
      if (rs.first()) {
        rs.beforeFirst();
        while (rs.next()) {
          if (sql.indexOf("BuildInfo") != -1) {
            tempvector = new Vector(1, 1);
            tempvector.add(rs.getString("ID"));
            tempvector.add(rs.getString("Location"));
            tempvector.add(rs.getString("Time"));
            tempvector.add(rs.getString("Area"));
            tempvector.add(rs.getString("UseArea"));
            model.addRow(tempvector);
          }
          else if (sql.indexOf("HouseInfo") != -1) {
            tempvector = new Vector(1, 1);
            tempvector.add(rs.getString("ID"));
            tempvector.add(db.getByField("BuildId", "Location",
                                         "ID='" + rs.getString("BuildID")+"'"));
            tempvector.add(rs.getString("Name"));
            tempvector.add(rs.getString("Area"));
            tempvector.add(rs.getString("YTArea"));
            model.addRow(tempvector);
          }
          else if (sql.indexOf("OwnerInfo") != -1) {
            tempvector = new Vector(1, 1);
            tempvector.add(rs.getString("ID"));
            tempvector.add(rs.getString("Name"));
            tempvector.add(db.getByField("Gender", "DESCRIPTION",
                                         "CODE='" + rs.getString("Gender")+"'"));
            tempvector.add(rs.getString("Birthday"));
            tempvector.add(rs.getString("WorkTime"));
            tempvector.add(rs.getString("Org"));
            model.addRow(tempvector);
          }
          else if (sql.indexOf("OwnerInfo") != -1) {
            tempvector = new Vector(1, 1);
            tempvector.add(rs.getString("ID"));
            tempvector.add(db.getByField("OwnerInfo", "Name",
                                         "ID='" + rs.getString("OwnerID")+"'"));
            tempvector.add(rs.getString("Name"));
            tempvector.add(db.getByField("Gender", "DESCRIPTION",
                                         "CODE='" + rs.getString("Gender")+"'"));
            tempvector.add(db.getByField("Relation", "DESCRIPTION",
                                         "CODE='" + rs.getString("Relation")+"'"));
            tempvector.add(rs.getString("Birthday"));
            tempvector.add(rs.getString("WorkTime"));
            model.addRow(tempvector);
          }
        }
      }
      else {
        CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "没有符合条件的记录!");
        rs.close();
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }

  }

  String createSql() {
    String sql = "";
    String value = "";
    String queryValue = "";
    sql = "select * from " + curTable + " where " + curItem +" "+
        linkOper.get(cboOper.getSelectedIndex()) ;
    //代码值
    if (linkCode.size() > 0) {
      value = linkCode.get(cboValue.getSelectedIndex()).toString();
    } //特殊项
    else if (curItem.equals("BuildID")) {
      value = db.getByField("BuildInfo", "ID",
                            "Location='" +
                            cboValue.getEditor().getItem().toString() + "'");
    }
    else if (curItem.equals("OwnerID")) {
      value = db.getByField("OwnerInfo", "ID",
                            "Name='" +
                            cboValue.getEditor().getItem().toString() + "'");
    }
    else {
      value = cboValue.getEditor().getItem().toString();
    }
    System.out.println(value);
    //like操作
    if (linkOper.get(cboOper.getSelectedIndex()).equals("like")) {
      queryValue = " '%" + value + "%'";
    }
    else {
      queryValue = "'" + value + "'";
    }
    System.out.println(queryValue);
    sql += queryValue;
    System.out.println(sql);
    return sql;
  }

  void cboTable_actionPerformed(ActionEvent e) {
    if (isInitTable) {
      return;
    }
    int index = cboTable.getSelectedIndex();
    curTable = linkTable.get(index).toString();
    isInitItem = true;
    cboItem.removeAllItems();
    linkItem.clear(); //不清空时会出问题
    for (int i = 0; i < sItems.length; i++) {
      if (sItems[i][0].equals(curTable)) {
        cboItem.addItem(sItems[i][2]);
        Hashtable tmp = new Hashtable();
        tmp.put("item", sItems[i][1]);
        tmp.put("code", sItems[i][3]);
        linkItem.add(tmp);
      }
    }
    cboItem.setSelectedItem(null);
    isInitItem = false;
  }

  void cboItem_actionPerformed(ActionEvent e) {
    if (isInitItem) {
      return;
    }
    int index = cboItem.getSelectedIndex();
    curItem = ( (Hashtable) linkItem.get(index)).get("item").toString();
    String code = ( (Hashtable) linkItem.get(index)).get("code").toString();
    cboValue.removeAllItems();
    linkCode.clear();
    if (!code.equals("")) {
      System.out.println(code);
      vecCode = db.getCode(code);

      for (int i = 0; i < vecCode.size(); i++) {
        cboValue.addItem( ( (String[]) vecCode.elementAt(i))[1]);
        linkCode.add( ( (String[]) vecCode.elementAt(i))[0]);
      }
      cboValue.setSelectedItem(null);
    }
  }

}

class OwnerQuery_btnExit_actionAdapter
    implements java.awt.event.ActionListener {
  OwnerQuery adaptee;

  OwnerQuery_btnExit_actionAdapter(OwnerQuery adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.btnExit_actionPerformed(e);
  }
}

class OwnerQuery_btnQuery_actionAdapter
    implements java.awt.event.ActionListener {
  OwnerQuery adaptee;

  OwnerQuery_btnQuery_actionAdapter(OwnerQuery adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.btnQuery_actionPerformed(e);
  }
}

class OwnerQuery_cboTable_actionAdapter
    implements java.awt.event.ActionListener {
  OwnerQuery adaptee;

  OwnerQuery_cboTable_actionAdapter(OwnerQuery adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    // adaptee.cboTable_actionPerformed(e);
    adaptee.cboTable_actionPerformed(e);
  }
}

class OwnerQuery_cboItem_actionAdapter
    implements java.awt.event.ActionListener {
  OwnerQuery adaptee;

  OwnerQuery_cboItem_actionAdapter(OwnerQuery adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.cboItem_actionPerformed(e);
  }
}

⌨️ 快捷键说明

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