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

📄 renshiguanlixitong.txt

📁 实现职员的删除、查找、登记、插入等基本功能
💻 TXT
字号:
package pmis;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.sql.*;
import java.util.*;
import com.borland.jbcl.layout.*;
import java.beans.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */
public class MainFrm extends JFrame
{
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();
  JSplitPane jSplitPane1 = new JSplitPane();
  JPanel jPanel1 = new JPanel();
  XYLayout xYLayout1 = new XYLayout();
  JLabel jLabel1 = new JLabel();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JButton jButton3 = new JButton();
  JButton jButton4 = new JButton();
  JButton jButton5 = new JButton();
  JComboBox jComboBox1 = new JComboBox();
  JTextField jTextField1 = new JTextField();
  JScrollPane jScrollPane1 = new JScrollPane();
  JTable jTable1 = new JTable(new MyTableModel());
  Connection con;
  Statement stmt;
  Vector columnData=new Vector();
  Vector rowData=new Vector();
  //构造窗体
  public MainFrm()
  {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try
    {
      jbInit();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
  }
  //初始化窗体中的部件
  private void jbInit() throws Exception
  {
    setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrm.
    //class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane()));
    contentPane.setLayout(borderLayout1);
    this.setSize(new Dimension(500,345));
    //设置窗体标题
    this.setTitle("人事管理系统");
    //设置窗体布局
    jPanel1.setLayout(xYLayout1);
    jLabel1.setText("搜索项");
    jButton1.setText("搜索");
    jButton1.setToolTipText("搜索资料");
    //添加action事件监听器
    jButton1.addActionListener(new java.awt.event.ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        jButton1_actionPerformed(e);
      }
    });
    jButton2.setText("全部显示");
    jButton2.setToolTipText("显示数据库中所有资料");
    jButton2.addActionListener(new java.awt.event.ActionListener() 
    {
      public void actionPerformed(ActionEvent e)
      {
        jButton2_actionPerformed(e);
      }
    });
    jButton3.setToolTipText("增加资料");
    jButton3.setText("增加");
    jButton3.addActionListener(new java.awt.event.ActionListener() 
    {
      public void actionPerformed(ActionEvent e)
      {
        jButton3_actionPerformed(e);
      }
    });
    jButton4.setText("删除");
    jButton4.setEnabled(false);
    jButton4.setToolTipText("删除资料");
    jButton4.addActionListener(new java.awt.event.ActionListener() 
    {
      public void actionPerformed(ActionEvent e)
      {
        jButton4_actionPerformed(e);
      }
    });
    jButton5.setText("修改");
    jButton5.setEnabled(false);
    jButton5.setToolTipText("修改资料");
    jButton5.addActionListener(new java.awt.event.ActionListener() 
    {
      public void actionPerformed(ActionEvent e)
      {
        jButton5_actionPerformed(e);
      }
    });
    contentPane.add(jSplitPane1, BorderLayout.CENTER);
    jSplitPane1.add(jPanel1, JSplitPane.LEFT);
    jPanel1.add(jButton1, new XYConstraints(10, 87, 84, -1));
    jPanel1.add(jButton2, new XYConstraints(10, 128, -1, -1));
    jPanel1.add(jButton3, new XYConstraints(10, 171, 84, -1));
    jPanel1.add(jButton4, new XYConstraints(10, 211, 84, -1));
    jPanel1.add(jButton5, new XYConstraints(10, 252, 84, -1));
    jPanel1.add(jTextField1, new XYConstraints(9, 59, 84, -1));
    jPanel1.add(jLabel1, new XYConstraints(10, 5, 59, 20));
    jPanel1.add(jComboBox1, new XYConstraints(10, 27, 84, -1));
    jSplitPane1.add(jScrollPane1, JSplitPane.RIGHT);
    jScrollPane1.getViewport().add(jTable1, null);
    jSplitPane1.setDividerLocation(103);
    jComboBox1.addItem("姓名");
    jComboBox1.addItem("性别");
    jComboBox1.addItem("年龄");
    jComboBox1.addItem("电话");
    jComboBox1.addItem("地址");
    jComboBox1.addItem("备注");
    //设置表的列名
    columnData.addElement("姓名");
    columnData.addElement("性别");
    columnData.addElement("年龄");
    columnData.addElement("电话");
    columnData.addElement("地址");
    columnData.addElement("备注");
    DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
    model.setDataVector(rowData,columnData);
    TableColumn column;
    //设置列的宽度
    column=jTable1.getColumn("姓名");
    column.setMinWidth(60);
    column=jTable1.getColumn("性别");
    column.setMinWidth(40);
    column=jTable1.getColumn("年龄");
    column.setMinWidth(40);
    column=jTable1.getColumn("电话");
    column.setMinWidth(60);
    column=jTable1.getColumn("地址");
    column.setMinWidth(80);
    column=jTable1.getColumn("备注");
    column.setMinWidth(100);
    //添加ListSelection事件监听器
    jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener()
    {
      public void valueChanged(ListSelectionEvent e)
      {
        if (jTable1.getSelectedRow()!=-1)
        {
          jButton4.setEnabled(true);
          jButton5.setEnabled(true);
        }
      }
    });
    //定义URL
    String url="jdbc:odbc:Person";
    //装入驱动程序
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    //建立连接
    con=DriverManager.getConnection(url);
    //创建语句
    stmt=con.createStatement();
    String sql="SELECT * FROM Person";
    update(sql);
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e)
  {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING)
    {
      System.exit(0);
    }
  }
  //获取满足条件的记录
  void jButton1_actionPerformed(ActionEvent e)
  {
    int n=jComboBox1.getSelectedIndex();
    String value=jTextField1.getText().trim();
    //获取字段名称
    String columnName=getColumnName(n);
    String sql;
    if (columnName!=null)
    {
      if (n!=2)
      {
        //字符型字段的查询
        sql="SELECT * FROM Person WHERE "+columnName+"='"+value+"'";
      }
      else
      {
        try
        {
          int age=Integer.parseInt(value);
          //整型字段的查询
          sql="SELECT * FROM Person WHERE "+columnName+"="+age;
        }
        catch (NumberFormatException ev)
        {
          System.out.println("年龄只能为数字");
          return;
        }
      }
      update(sql);
      jButton4.setEnabled(false);
      jButton5.setEnabled(false);
    }
    else
    {
      return;
    }
  }
  //获取数据库中的所有记录
  void jButton2_actionPerformed(ActionEvent e)
  {
    String sql="SELECT * FROM Person";
    update(sql);
    jButton4.setEnabled(false);
    jButton5.setEnabled(false);
  }
  //添加记录
  void jButton3_actionPerformed(ActionEvent e)
  {
    InputDlg dlg=new InputDlg(this,"添加记录",true);
    int x=getX()+getWidth()/2-dlg.getWidth()/2;
    int y=getY()+getHeight()/2-dlg.getHeight()/2;
    dlg.setLocation(x,y);
    //显示对话框接收数据
    dlg.show();
  }
  //删除记录
  void jButton4_actionPerformed(ActionEvent e)
  {
    int n=jTable1.getSelectedRow();
    String name=(String)jTable1.getValueAt(n,0);
    String sql="DELETE FROM Person WHERE name='"+name+"'";
    try
    {
      //执行删除语句
      stmt.executeUpdate(sql);
    }
    catch (SQLException ev)
    {
      System.out.println(ev.getMessage());
    }
    DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
    //更新表中数据
    model.removeRow(n);
    jButton4.setEnabled(false);
    jButton5.setEnabled(false);
  }
  //修改记录
  void jButton5_actionPerformed(ActionEvent e)
  {
    String data[]=new String[6];
    int r=jTable1.getSelectedRow();
    for (int i=0;i<6;i++)
    {
      //获取表中当前行的列数据
      data[i]=(String)jTable1.getValueAt(r,i);
    }
    InputDlg dlg=new InputDlg(this,"修改记录",true,data);
    int x=getX()+getWidth()/2-dlg.getWidth()/2;
    int y=getY()+getHeight()/2-dlg.getHeight()/2;
    dlg.setLocation(x,y);
    //显示对话框接收数据
    dlg.show();
  }

  //获取数据库中的字段名称
 String getColumnName(int index)
  {
    if (index==0)
    {
      return "name";
    }
    else if (index==1)
    {
      return "sex";
    }
    else if (index==2)
    {
      return "age";
    }
    else if (index==3)
    {
      return "phone";
    }
    else if (index==4)
    {
      return "address";
    }
    else if (index==5)
    {
      return "remark";
    }
    else
    {
      return null;
    }
  }

  void addRecord (String data[])
  {
   //生成SQL语句
    String sql="INSERT INTO Person VALUES('"+data[0]+"'";
    for (int i=1;i<6;i++)
    {
      sql+=",'"+data[i]+"'";
    }
    sql+=")";
    try
    {
    //执行增加语句
      stmt.executeUpdate(sql);
    }
    catch (SQLException e)
    {
      System.out.println(e.getMessage());
      return;
    }
    DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
    if (data[2]=="0")
      data[2]="";
    //更新表中数据
    model.addRow(data);
  }

  void editRecord (String data[])
  {
    //生成SQL语句
    String sql="UPDATE Person SET sex='"+data[1]+"'";
    sql+=",age="+Integer.parseInt(data[2]);
    sql+=",phone='"+data[3]+"'";
    sql+=",address='"+data[4]+"'";
    sql+=",remark='"+data[5]+"'";
    sql+=" WHERE name='"+data[0]+"'";
    try
    {
      //执行更新语句
      stmt.executeUpdate(sql);
    }
    catch (SQLException e)
    {
      System.out.println(e.getMessage());
      return;
    }
    int n=jTable1.getSelectedRow();
    if (data[2]=="0")
      data[2]="";
    //更新表中数据
    for (int i=1;i<6;i++)
    {
      jTable1.setValueAt(data[i],n,i);
    }
  }

  void update(String sql)
  {
    DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
    int count=jTable1.getRowCount();
    //移除表中的所有数据
    for (int i=0;i<count;i++)
    {
      model.removeRow(0);
    }
    try
    {
      //执行查询语句
      ResultSet rs=stmt.executeQuery(sql);
      //更新表中的数据
      while (rs.next())
      {
        String name=rs.getString(1).trim();
        String sex=rs.getString(2).trim();
        String age=String.valueOf(rs.getInt(3));
        if (age=="0")
          age="";
        String phone=rs.getString(4).trim();
        String addr=rs.getString(5).trim();
        String remark=rs.getString(6).trim();
        String row[]={name,sex,age,phone,addr,remark};
        model.addRow(row);
      }
    }
    catch (SQLException ev)
    {
      System.out.println(ev.getMessage());
    }
  }
	
  class MyTableModel extends DefaultTableModel
  {
    //使表中的内容不能被修改
    public boolean isCellEditable(int r,int c)
    {
      return false;
    }
  }
}

⌨️ 快捷键说明

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