📄 ownerquery.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 + -