STiNA维修管理系统

来源:互联网 发布:全民突击挂机软件 编辑:程序博客网 时间:2024/04/28 02:23

Java Input Output System

import java.sql.*;
public class STiNA
{
 private String indate;
 private String client;
 private String type;
 private int count;
 private String remark;
 private String people;
 private String outdate;
 private ApplicationGUI gui;
 private ApplicationData data;
 
 public static void main(String[] args)
 {
  STiNA stina = new STiNA();
  stina.initApplication();
 }
 
 public void initApplication()
 {
  indate = "";
  client = "";
  type = "";
  count = 0;
  remark = "";
  people = "";
  outdate = "";
  data = new ApplicationData();
  gui = new ApplicationGUI("STiNA信息管理系统", this);
 }

 public void addRecoard(String cmd)
 {
  data.insertData(cmd);
 }
 
 public ResultSet queryRecoard(String cmd)
 {
  return data.searchData(cmd);
 }
 
 public void updateRecoard(String cmd)
 {
  data.updateData(cmd);
 }
 
 protected void finalize()
 {
  data.finalize();
  data = null;
  gui = null;
 }
}

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.util.Vector;
import java.sql.*;

class ApplicationGUI extends JFrame
{
  JLabel label1;
  JTextField date;
  JLabel label2;
  JTextField client;
  JLabel label3;
  JTextField type;
  JLabel label4;
  JTextField number;
  JLabel label5;
  JTextField remark;
  JLabel label6;
  JTextField people;
  JButton enter;
  JButton save;
  JButton edit;
 
  JTable table;
  STiNA stina;
  StinaTableModel stinatable;
  QueryTableModel qtm;
  OutTableModel otm;
 
  JLabel label7;
  JTextField indates;
  JLabel label8;
  JTextField clients;
  JLabel label9;
  JTextField types;
  JLabel label10;
  JTextField outdates;
  JLabel label11;
  JTextField sendCompanys;
  JLabel label12;
  JTextField sendNumbers;
  JButton noOutSearch;
  JButton alreadyOutSearch;
  JLabel label13;
  JTextField inputOutDate;
  JLabel label14;
  JLabel label16;
  JTextField sendNumberin;
  JTextField sendCompanyPeople;
  JLabel label15;
  JTextField telNumber;
  JButton out;
  JButton saveout;
  JButton editout;
  JTable searchTable;
  JTable outTable;
  int indexOfSearchTable;
 
 public ApplicationGUI(String title, STiNA stina)
 {
  super(title);
  this.stina = stina;
  setDefaultCloseOperation(EXIT_ON_CLOSE);
  setResizable(false);
  setBounds(0, 0, 800, 600);
  initGUI();
  setVisible(true);
 }
 
 public void initGUI()
 {
  JTabbedPane tabPane = new JTabbedPane();
  JPanel addpane = new JPanel();
  JPanel seapane = new JPanel();
 
  label1 = new JLabel("日期:");
  date = new JTextField(6);
  label2 = new JLabel("客户姓名:");
  client = new JTextField(8);
  label3 = new JLabel("型号:");
  type = new JTextField(8);
  label4 = new JLabel("数量:");
  number = new JTextField(3);
  label5 = new JLabel("备注:");
  remark = new JTextField(12);
  label6 = new JLabel("经手人:");
  people = new JTextField(8);
  enter = new JButton("确定");
  enter.addActionListener(new ActionListener(){
                              public void actionPerformed(ActionEvent e)
                              {
                               stinatable.setValues(date.getText(), client.getText(), type.getText(), number.getText(), remark.getText(), people.getText());
                               stinatable.fireTableDataChanged();
                               date.setText("");
                               client.setText("");
                               type.setText("");
                               number.setText("");
                               remark.setText("");
                               people.setText("");
                              }
  });
  save = new JButton("保存");
  save.addActionListener(new ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                             Vector recoard;
                             for(int i = 0; i < stinatable.getRowCount(); i ++)
                             {
                              String cmd = "INSERT INTO weixiu (入库日期, 客户, 型号, 数量, 备注, 经手人)VALUES (";
                              String cmdend = ");";
                              recoard = stinatable.getRecoard(i);
                              for(int j = 0; j < stinatable.getColumnCount(); j ++)
                                      cmd = cmd + "'" +(String)recoard.elementAt(j) + (((j + 1) == stinatable.getColumnCount()) ? "'" : "',");
                              cmd = cmd + cmdend;
                              System.out.println(cmd);
                              stina.addRecoard(cmd);
                             }
                             stinatable.clearData();
                             stinatable.fireTableDataChanged();
                            }
  });
  edit = new JButton("编辑");
  edit.addActionListener(new ActionListener(){
                             public void actionPerformed(ActionEvent e)
                             {
                              int selectRecoard;
                              Vector editRecoard;
                             
                              selectRecoard = table.getSelectedRow();
                              if(selectRecoard == -1) return;
                              editRecoard = stinatable.getRecoard(selectRecoard);
                              date.setText((String)editRecoard.elementAt(0));
                              client.setText((String)editRecoard.elementAt(1));
                              type.setText((String)editRecoard.elementAt(2));
                              number.setText((String)editRecoard.elementAt(3));
                              remark.setText((String)editRecoard.elementAt(4));
                              people.setText((String)editRecoard.elementAt(5));
                              stinatable.removeRecoard(selectRecoard);
                              stinatable.fireTableDataChanged();
                             }
  });
  table = new JTable(stinatable = new StinaTableModel());
 
  GridBagLayout gridbag = new GridBagLayout();
  GridBagConstraints constraints = new GridBagConstraints();
  addpane.setLayout(gridbag);
  constraints.gridx = constraints.gridy = 0;
  constraints.anchor = constraints.WEST;
  constraints.fill = constraints.NONE;
  constraints.weightx = 1.0;
  constraints.weighty = 1.0;
  gridbag.setConstraints(label1, constraints);
  addpane.add(label1);
  constraints.gridx = 1;
  constraints.weightx = 3.0;
  gridbag.setConstraints(date, constraints);
  addpane.add(date);
  constraints.gridx = 2;
  constraints.weightx = 1.0;
  gridbag.setConstraints(label2, constraints);
  addpane.add(label2);
  constraints.gridx = 3;
  constraints.weightx = 3.0;
  gridbag.setConstraints(client, constraints);
  addpane.add(client);
  constraints.gridx = 5;
  constraints.weightx = 5.0;
  gridbag.setConstraints(enter, constraints);
  addpane.add(enter);
  constraints.gridx = 0;
  constraints.gridy = 1;
  constraints.weightx = 1.0;
  gridbag.setConstraints(label3, constraints);
  addpane.add(label3);
  constraints.gridx = 1;
  constraints.weightx = 3.0;
  gridbag.setConstraints(type, constraints);
  addpane.add(type);
  constraints.gridx = 2;
  constraints.weightx = 1.0;
  gridbag.setConstraints(label4, constraints);
  addpane.add(label4);
  constraints.gridx = 3;
  constraints.weightx = 3.0;
  gridbag.setConstraints(number, constraints);
  addpane.add(number);
  constraints.gridx = 5;
  constraints.weightx = 5.0;
  gridbag.setConstraints(save, constraints);
  addpane.add(save);
  constraints.gridx = 0;
  constraints.gridy = 2;
  constraints.weightx = 1.0;
  gridbag.setConstraints(label5, constraints);
  addpane.add(label5);
  constraints.gridx = 1;
  constraints.weightx = 3.0;
  gridbag.setConstraints(remark, constraints);
  addpane.add(remark);
  constraints.gridx = 2;
  constraints.weightx = 1.0;
  gridbag.setConstraints(label6, constraints);
  addpane.add(label6);
  constraints.gridx = 3;
  constraints.weightx = 3.0;
  gridbag.setConstraints(people, constraints);
  addpane.add(people);
  constraints.gridx = 5;
  constraints.weightx = 5.0;
  gridbag.setConstraints(edit, constraints);
  addpane.add(edit);
  constraints.gridwidth = constraints.gridheight = 6;
  constraints.gridx = 0;
  constraints.gridy = 3;
  constraints.fill = constraints.BOTH;
  constraints.weighty = 14;
  JScrollPane jsp = new JScrollPane(table);
  gridbag.setConstraints(jsp, constraints);
  addpane.add(jsp);
 
  label7 = new JLabel("入库日期:");
  indates = new JTextField(6);
  label8 = new JLabel("客户:");
  clients = new JTextField(8);
  label9 = new JLabel("型号:");
  types = new JTextField(8);
  label10 = new JLabel("出库日期:");
  outdates = new JTextField(6);
  label11 = new JLabel("发货公司(人):");
  sendCompanys = new JTextField(12);
  label12 = new JLabel("货运单号");
  sendNumbers = new JTextField(6);
  noOutSearch = new JButton("未出库记录查询");
  noOutSearch.addActionListener(new ActionListener() {
                                    public void actionPerformed(ActionEvent e)
                                    {
                                     ResultSet rest;
                                     String cmd = "SELECT 入库日期, 客户, 型号, 数量, 备注, 经手人 FROM weixiu";
                                     String insertCmd = "";
                                     if(!indates.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + "入库日期 like '" + indates.getText() +  "' ";
                                     if(!clients.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 客户 like '" + clients.getText() + "' ";
                                     if(!types.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 型号 like '" + types.getText() + "' ";
                                     String endOfCmd = (insertCmd.equals("") ? " WHERE " : " AND ") + "出库日期 IS Null";
                                     indates.setText("");
                                     clients.setText("");
                                     types.setText("");

                                     cmd = cmd + insertCmd + endOfCmd;
                                     System.out.println(cmd);
                                     try{
                                         rest = stina.queryRecoard(cmd);
                                         //ResultSetMetaData rsmd = rest.getMetaData();
                                         qtm.brushTable(rest);
                                         //for(int i = 0; i < rsmd.getColumnCount(); i++)
                                           //  System.out.println(rsmd.getColumnLabel(i+1));
                                     }catch(Exception e1){}
                                     /* 测试用
                                     try{rest.next();
                                     for(int i = 1; i < 7; i ++)
                                     System.out.print(rest.getString(i) + "/t");
                                     }catch(Exception eb)
                                     {}*/

                                     qtm.fireTableStructureChanged();
                                     inputOutDate.setEnabled(true);
                                     sendCompanyPeople.setEnabled(true);
                                     sendNumberin.setEnabled(true);
                                     telNumber.setEnabled(true);
                                     out.setEnabled(true);
                                     saveout.setEnabled(true);
                                     editout.setEnabled(true);
                                     //System.out.println(cmd);
                                    }
  });
  alreadyOutSearch = new JButton("已出库记录查询");
  alreadyOutSearch.addActionListener(new ActionListener() {
                                         public void actionPerformed(ActionEvent e){
                                                ResultSet rest;
                                     String cmd = "SELECT * FROM weixiu";
                                     String insertCmd = "";
                                     if(!indates.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + "入库日期 like '" + indates.getText() +  "' ";
                                     if(!clients.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 客户 like '" + clients.getText() + "' ";
                                     if(!types.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 型号 like '" + types.getText() + "' ";
                                     if(!outdates.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 出库日期 like '" + outdates.getText() + "' ";
                                     if(!sendCompanys.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 发货公司 like '" + sendCompanys.getText() + "' ";
                                     if(!sendNumbers.getText().equals(""))
                                     insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 货单号码 like '" + sendNumbers.getText() + "' ";
                                     String endOfCmd = (insertCmd.equals("") ? " WHERE " : " AND ") + "出库日期 IS NOT Null";
                                     indates.setText("");
                                     clients.setText("");
                                     types.setText("");
                                     outdates.setText("");
                                     sendCompanys.setText("");
                                     sendNumbers.setText("");

                                     cmd = cmd + insertCmd + endOfCmd;
                                     System.out.println(cmd);
                                     try{
                                         rest = stina.queryRecoard(cmd);
                                         //ResultSetMetaData rsmd = rest.getMetaData();
                                         qtm.brushTable(rest);
                                         //for(int i = 0; i < rsmd.getColumnCount(); i++)
                                           //  System.out.println(rsmd.getColumnLabel(i+1));
                                     }catch(Exception e1){}
                                     /* 测试用
                                     try{rest.next();
                                     for(int i = 1; i < 7; i ++)
                                     System.out.print(rest.getString(i) + "/t");
                                     }catch(Exception eb)
                                     {}*/

                                     qtm.fireTableStructureChanged();
                                     inputOutDate.setEnabled(false);
                                     sendCompanyPeople.setEnabled(false);
                                     sendNumberin.setEnabled(false);
                                     telNumber.setEnabled(false);
                                     out.setEnabled(false);
                                     saveout.setEnabled(false);
                                     editout.setEnabled(false);
                                     //System.out.println(cmd);
                                         }
  });
  searchTable = new JTable(qtm = new QueryTableModel());
  label13 = new JLabel("出库日期:");
  inputOutDate = new JTextField(6);
  inputOutDate.setEnabled(false);
  label14 = new JLabel("发货公司(发货人):");
  sendCompanyPeople = new JTextField(12);
  sendCompanyPeople.setEnabled(false);
  label15 = new JLabel("货运单号:");
  sendNumberin = new JTextField(6);
  sendNumberin.setEnabled(false);
  label16 = new JLabel("联系电话:");
  telNumber = new JTextField(6);
  telNumber.setEnabled(false);
  out = new JButton("出库");
  out.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent e)
                            {
                             Vector recoard;
                             if(searchTable.getSelectedRow() >= 0)
                             {
                                                          recoard = qtm.getRecoard(searchTable.getSelectedRow());
                             }
                             else {
                                 JOptionPane.showMessageDialog(ApplicationGUI.this, "清选择未出库的记录!");
                                 return;
                             }
                             if(inputOutDate.getText().equals("") || sendCompanyPeople.getText().equals("") || sendNumberin.getText().equals("") || telNumber.getText().equals("")) {
                                                                  JOptionPane.showMessageDialog(ApplicationGUI.this, "清填写[出库日期]、[发货公司(发货人)]、[货运单号]、[联系电话]等内容!");
                                                                  return;
                             }
                             else {
                                  indexOfSearchTable = qtm.getRecoardIndex(recoard);
                                  qtm.removeRecoard(recoard);
                                  recoard.addElement(inputOutDate.getText());
                                  recoard.addElement(sendCompanyPeople.getText());
                                  recoard.addElement(sendNumberin.getText());
                                  recoard.addElement(telNumber.getText());
                                  inputOutDate.setText("");
                                  sendCompanyPeople.setText("");
                                  sendNumberin.setText("");
                                  telNumber.setText("");
                                  otm.addRecoard(recoard);
                                  otm.fireTableDataChanged();
                                  qtm.fireTableDataChanged();
                             }
                            }
  });
  out.setEnabled(false);
  saveout = new JButton("保存");
  saveout.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                       Vector recoard;
                                       String cmd = "UPDATE weixiu SET ";
                                       String insertCmd;
                                       String filterCmd;
                                       for(int i = 0; i < otm.getRowCount(); i ++)
                                       {
                                        insertCmd = "";
                                        filterCmd = "";
                                        recoard = otm.getRecoard(i);
                                        insertCmd = "出库日期='" + (String)recoard.elementAt(6) + "' , 发货公司='" + (String)recoard.elementAt(7) + "' , 货单号码='" + (String)recoard.elementAt(8) + "' , 电话='" + (String)recoard.elementAt(9) + "' ";
                                        filterCmd = "WHERE 入库日期='" + (String)recoard.elementAt(0) + "' AND 客户='" + (String)recoard.elementAt(1) + "' AND 型号='" + (String)recoard.elementAt(2) + "' AND 数量='" + (String)recoard.elementAt(3) + "' AND 备注='" + (String)recoard.elementAt(4) + "' AND 经手人='" + (String)recoard.elementAt(5) + "';";
                                        cmd = cmd + insertCmd + filterCmd;
                                        stina.updateRecoard(cmd);
                                        System.out.println(cmd);
//                                        stina.addRecoard(cmd);
                                       }
                                       //stina.updateRecoard("UPDATE weixiu SET 出库日期='100' , 发货公司='100' WHERE 入库日期='1'");
                                       otm.clearData();
                                       otm.fireTableDataChanged();
                                }
  });
  saveout.setEnabled(false);
  editout = new JButton("编辑");
  editout.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                             Vector recoard;
                                             if(outTable.getSelectedRow() >= 0)
                                             {
                                                                             recoard = otm.getRecoard(outTable.getSelectedRow());
                                                                             otm.removeRecoard(recoard);
                                                                             otm.fireTableDataChanged();
                                                                             telNumber.setText((String)recoard.elementAt(9));
                                                                             recoard.remove(9);
                                                                             sendNumberin.setText((String)recoard.elementAt(8));
                                                                             recoard.remove(8);
                                                                             sendCompanyPeople.setText((String)recoard.elementAt(7));
                                                                             recoard.remove(7);
                                                                             inputOutDate.setText((String)recoard.elementAt(6));
                                                                             recoard.remove(6);
                                                                             qtm.insertRecoard(recoard, indexOfSearchTable);
                                                                             qtm.fireTableDataChanged();
                                             }
                                }
  });
  editout.setEnabled(false);
  outTable = new JTable(otm = new OutTableModel());

 
  GridBagLayout gbl = new GridBagLayout();
  GridBagConstraints gbc = new GridBagConstraints();
  seapane.setLayout(gbl);

  gbc.anchor = gbc.WEST;
  gbc.gridx = gbc.gridy = 0;
  gbc.gridheight = gbc.gridwidth = 1;
  gbc.fill = gbc.HORIZONTAL;
  gbl.setConstraints(label7, gbc);
  seapane.add(label7);
  gbc.gridx = 1;
  gbl.setConstraints(indates, gbc);
  seapane.add(indates);
  gbc.gridx = 2;
  gbl.setConstraints(label8, gbc);
  seapane.add(label8);
  gbc.gridx = 3;
  gbl.setConstraints(clients, gbc);
  seapane.add(clients);
  gbc.gridx = 4;
  gbl.setConstraints(label9, gbc);
  seapane.add(label9);
  gbc.gridx = 5;
  gbl.setConstraints(types, gbc);
  seapane.add(types);
  gbc.gridx = 7;
  gbc.gridwidth = 1;
  gbc.fill = gbc.NONE;
  gbc.anchor = gbc.CENTER;
  gbl.setConstraints(noOutSearch, gbc);
  seapane.add(noOutSearch);
  gbc.fill = gbc.HORIZONTAL;
  gbc.anchor = gbc.WEST;
  gbc.gridwidth = 1;
  gbc.gridx = 0;
  gbc.gridy = 1;
  gbc.gridheight = 1;
  gbl.setConstraints(label10, gbc);
  seapane.add(label10);
  gbc.gridx = 1;
  gbl.setConstraints(outdates, gbc);
  seapane.add(outdates);
  gbc.gridx = 2;
  gbl.setConstraints(label11, gbc);
  seapane.add(label11);
  gbc.gridx = 3;
  gbl.setConstraints(sendCompanys, gbc);
  seapane.add(sendCompanys);
  gbc.gridx = 4;
  gbl.setConstraints(label12, gbc);
  seapane.add(label12);
  gbc.gridx = 5;
  gbl.setConstraints(sendNumbers, gbc);
  seapane.add(sendNumbers);
  gbc.gridx = 7;
  gbc.gridheight = 1;
  gbc.gridwidth = 1;
  gbc.fill = gbc.NONE;
  gbc.anchor = gbc.CENTER;
  gbl.setConstraints(alreadyOutSearch, gbc);
  seapane.add(alreadyOutSearch);
  gbc.fill = gbc.BOTH;
  gbc.anchor = gbc.WEST;
  gbc.gridy = 2;
  gbc.gridx = 0;
  gbc.gridheight = 1;
  gbc.gridwidth = 8; //gbc.REMAINDER;
  gbc.weightx = gbc.weighty = 1.0;
  JScrollPane jsp1 = new JScrollPane(searchTable);
  gbl.setConstraints(jsp1, gbc);
  seapane.add(jsp1);
  gbc.weightx = gbc.weighty = 0.0;
  gbc.gridy = 4;
  gbc.gridx = 0;
  gbc.gridwidth = 1;
  gbc.gridheight = 1;
  gbl.setConstraints(label13, gbc);
  seapane.add(label13);
  gbc.gridx = 1;
  gbl.setConstraints(inputOutDate, gbc);
  seapane.add(inputOutDate);
  gbc.gridx = 2;
  gbl.setConstraints(label14, gbc);
  seapane.add(label14);
  gbc.gridx = 3;
  gbl.setConstraints(sendCompanyPeople, gbc);
  seapane.add(sendCompanyPeople);
  gbc.gridx = 4;
  gbl.setConstraints(label15, gbc);
  seapane.add(label15);
  gbc.gridx = 5;
  gbc.weightx = 0.2;
  gbl.setConstraints(sendNumberin, gbc);
  seapane.add(sendNumberin);
  gbc.gridx = 6;
  gbl.setConstraints(label16, gbc);
  seapane.add(label16);
  gbc.gridx = 7;
  gbc.weightx = 0.1;
  gbl.setConstraints(telNumber, gbc);
  seapane.add(telNumber);
  gbc.gridx = 1;
  gbc.gridy = 5;
  gbc.fill = gbc.NONE;
  gbc.anchor = gbc.WEST;
  gbl.setConstraints(out, gbc);
  seapane.add(out);
  gbc.gridx = 2;
  gbl.setConstraints(saveout, gbc);
  seapane.add(saveout);
  gbc.gridx = 3;
  gbl.setConstraints(editout, gbc);
  seapane.add(editout);
  JScrollPane jsp2 = new JScrollPane(outTable);
  gbc.gridx = 0;
  gbc.gridy = 7;
  gbc.gridheight = 1;
  gbc.gridwidth = 8;
  gbc.fill = gbc.BOTH;
  gbc.weightx = gbc.weighty = 1.0;
  gbl.setConstraints(jsp2, gbc);
  seapane.add(jsp2);

  addpane.setBorder(new TitledBorder(new LineBorder(Color.GRAY), "数据录入"));
  seapane.setBorder(new TitledBorder(new LineBorder(Color.GRAY), "数据查询[出库]"));
  tabPane.add("入库记录", addpane);
  tabPane.add("检索记录(出库)", seapane);
  Container container = getContentPane();
  container.add(tabPane);
 }
}

import java.sql.*;

class ApplicationData
{
 Connection con;
 Statement statement;
 ResultSet result;
 int operationCount;
 
 public ApplicationData()
 {
  try{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  }catch(Exception e)
  {
   System.err.println("载入驱动程序出错!");
   System.exit(1);
  }
  String sourceURL = "jdbc:odbc:input";
  try{
    con = DriverManager.getConnection(sourceURL);
    statement = con.createStatement();
  }catch(Exception e)
  {
   System.err.println("建立数据库连接出错!");
   System.exit(1);
  }
 }
 
 public int insertData(String cmd)
 {
  try{
      operationCount = statement.executeUpdate(cmd);
  }catch(Exception e)
  {
   System.err.println("入库操作出错!");
   System.exit(1);
  }finally{
           return operationCount;
  }
 }
 
 public int updateData(String cmd)
 {
  try{
      operationCount = statement.executeUpdate(cmd);
  }catch(Exception e)
  {
   System.err.println("出库操作出错!");
   System.exit(1);
  }
  finally{
          return operationCount;
  }
 }
 
 public ResultSet searchData(String cmd)
 {
  try{
      result = statement.executeQuery(cmd);
  }catch(Exception e)
  {
   System.err.println("查询操作出错!");
   System.exit(1);
  }finally{
           return result;
  }
 }
 
 protected void finalize()
 {
  try{
      statement.close();
      con.close();
      System.out.println("数据库正常关闭!");
  }catch(Exception e)
  {
   System.err.println("数据库关闭出错!");
  }
 }
 
 /*public void closeConnection()
 {
  try{
      con.close();
      System.out.println("数据库连接正常关闭!程序退出。");
  }catch(Exception e)
  {
   System.err.println("关闭连接出错!");
   System.exit(1);
  }
 }*/
}

import javax.swing.table.*;
import java.util.*;

public class StinaTableModel extends AbstractTableModel
{
 String[] columnHeaders = {"入库日期", "客户", "型号", "数量", "备注", "经手人"};

 Vector clumnNames = new Vector(7);
 Vector dataValues = new Vector(1);
 
 public StinaTableModel()
 {
  for(int i = 0; i < columnHeaders.length; i ++)
          clumnNames.addElement(columnHeaders[i]);
 }

 public int getColumnCount()
 {
  return clumnNames.size();
 }
 
 public int getRowCount()
 {
  return dataValues.size();
 }
 
 public Object getValueAt(int row, int column)
 {
  Vector recVector = (Vector)dataValues.elementAt(row);
  return recVector.elementAt(column);
 }
 
 public String getColumnName(int column)
 {
  return (String)clumnNames.elementAt(column);
 }
 
 public void setValues(String indate, String client, String type, String number, String remark, String people)
 {
  Vector recVector = new Vector(6);
  recVector.addElement(indate);
  recVector.addElement(client);
  recVector.addElement(type);
  recVector.addElement(number);
  recVector.addElement(remark);
  recVector.addElement(people);
 
  dataValues.addElement(recVector);
 }
 
 public void clearData()
 {
  dataValues = new Vector();
 }
 
 public Vector getRecoard(int row)
 {
  return (Vector)dataValues.elementAt(row);
 }
 
 public void removeRecoard(int row)
 {
  dataValues.remove(row);
 }
}

import java.util.*;
import javax.swing.table.*;
import java.sql.*;

public class QueryTableModel extends AbstractTableModel{
       private Vector columnHeaders;
       private Vector dataValues;
      
       public QueryTableModel()
       {
        columnHeaders = new Vector();
        dataValues = new Vector();
       }

       public int getColumnCount()
       {
        return columnHeaders.size();
       }
      
       public int getRowCount()
       {
        return dataValues.size();
       }
      
       public Object getValueAt(int row, int column)
       {
        Vector recoard = (Vector) dataValues.elementAt(row);
        return recoard.elementAt(column);
       }
      
       public void brushTable(ResultSet rest)
       {

        try{
            dataValues.removeAllElements();
        columnHeaders.removeAllElements();
        fireTableStructureChanged();
            Vector recoard;
            ResultSetMetaData rsmd = rest.getMetaData();
            columnHeaders = new Vector(rsmd.getColumnCount());
            for(int i = 1; i <= rsmd.getColumnCount(); i ++)
            {
             columnHeaders.addElement(rsmd.getColumnName(i));
            }
            while(rest.next())
            {
             recoard = new Vector(columnHeaders.size());
             for(int i = 1; i <= rsmd.getColumnCount(); i ++)
                     recoard.addElement(rest.getString(i));
             dataValues.addElement(recoard);
            }
        }catch(Exception e)
        {
         System.err.println("更新查询数据表错误!");
         System.exit(1);
        }
       
        System.out.println("查询结果为:" + columnHeaders.size() + "列");
        System.out.println("查询结果有:"+dataValues.size()+"行");
       }
      
       public String getColumnName(int column)
       {
        return (String)columnHeaders.elementAt(column);
       }
      
       public Vector getRecoard(int row)
       {
        return (Vector)dataValues.elementAt(row);
       }
      
       public void removeRecoard(Vector rec)
       {
        dataValues.removeElement(rec);
       }
      
       public int getRecoardIndex(Vector rec)
       {
        return dataValues.indexOf(rec);
       }
      
       public void insertRecoard(Vector rec, int index)
       {
        dataValues.insertElementAt(rec, index);
       }
}

import java.util.*;
import javax.swing.table.*;
import java.sql.*;

public class OutTableModel extends AbstractTableModel {
       private Vector dataValues;
      
       private String[] columnNames = {"入库日期", "客户", "型号", "数量", "备注", "经手人", "出库日期", "发货公司", "货单号码", "电话"};

       public OutTableModel()
       {
        dataValues = new Vector();
       }

       public int getColumnCount()
       {
        return columnNames.length;
       }

       public int getRowCount()
       {
        return dataValues.size();
       }

       public Object getValueAt(int row, int column)
       {
        Vector recoard = (Vector) dataValues.elementAt(row);
        return recoard.elementAt(column);
       }

       public String getColumnName(int column)
       {
        return columnNames[column];
       }
      
       public Vector getRecoard(int row)
       {
        return (Vector)dataValues.elementAt(row);
       }
      
       public void addRecoard(Vector rec)
       {
        dataValues.addElement(rec);
       }
      
       public void removeRecoard(Vector rec)
       {
        dataValues.removeElement(rec);
       }
      
       public void clearData()
       {
        dataValues = null;
        dataValues = new Vector();
       }
}