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

📄 同学录.java

📁 JAVA编程是以后的一个驱势
💻 JAVA
字号:
//======================= AuthMain.java =====================
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class AuthMain extends JFrame
  {
  private AuthButtons buttons;
  private AuthFields fields;
  private JTextArea ta;
  private String url;
  private Connection con;
  private JScrollPane scrollPane;
  public AuthMain()
    {
    super("电话表");
    Container c = getContentPane();
    fields = new AuthFields();
    ta = new JTextArea(4, 20);//定义一个文本区
    c.setLayout(new BorderLayout());
    c.add(new JScrollPane(fields), BorderLayout.CENTER);
    scrollPane = new JScrollPane(ta);//文本区jtextarea对象存在一个带有流动条的jscrollpane对象上。
    c.add(scrollPane, BorderLayout.SOUTH);
    try
      {
      url = "jdbc:odbc:bookbase";
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      con = DriverManager.getConnection(url);
      ta.setText("连接成功");
      }
    catch (ClassNotFoundException cnfex)
      {
      cnfex.printStackTrace();
      ta.setText(cnfex.toString());
      }
    catch (SQLException sqlex)
      {
      sqlex.printStackTrace();
      ta.setText(sqlex.toString());
      }
    catch (Exception ex)
      {
      ex.printStackTrace();
      ta.setText(ex.toString());
      }
    buttons = new AuthButtons(con, fields, ta);
    c.add(buttons, BorderLayout.NORTH);
    setSize(600, 300);
    show();
    }
  public static void main(String args[])
    {
    AuthMain authMain = new AuthMain();
    authMain.addWindowListener(new MyWindowListener());
    }
  }


class AuthButtons extends JPanel
  {
  private JButton findButton, addButton, updateButton;
  private JButton sqlButton, deleteButton, helpButton;
  public AuthButtons(Connection c,AuthFields f,JTextArea ta)
    {
    setLayout(new GridLayout(1, 6));
    findButton = new JButton("查找");
    findButton.addActionListener(new AuthFind(c,f,ta));
    add(findButton);
    addButton = new JButton("加入");
    addButton.addActionListener(new AuthAdd(c,f,ta));
    add(addButton);
    updateButton = new JButton("更新");
    updateButton.addActionListener(new AuthUpdate(c,f,ta));
    add(updateButton);
    deleteButton = new JButton("删除");
    deleteButton.addActionListener(new AuthDelete(c,f,ta));
    add(deleteButton);
    sqlButton = new JButton(" SQL ");
    sqlButton.addActionListener(new AuthSql(c,ta));
    add(sqlButton);
    helpButton = new JButton("说明");
    helpButton.addActionListener(new AuthHelp(ta));
    add(helpButton);
    }
  }




 class AuthAdd implements ActionListener
  {
  private AuthFields fields;
  private JTextArea ta;
  private Connection con;
  public AuthAdd(Connection c, AuthFields f, JTextArea a)
    {
    con = c;
    fields = f;
    ta = a;
    }
  public void actionPerformed(ActionEvent e)
    {
    try
      {
      PreparedStatement pstmt=con.prepareStatement(
          "insert into authTab values(?,?,?,?,?)");
      String auth=fields.auth.getText();
      String tel=fields.tel.getText();
      String sex=fields.sex.getText();
      String bir=fields.bir.getText();
      String mail=fields.mail.getText();
      pstmt.setString(1, auth);
      pstmt.setString(2, sex);
      pstmt.setString(3, bir);
      pstmt.setString(4, tel);
      pstmt.setString(5, mail);   
      pstmt.executeUpdate();
      pstmt.close();
      ta.setText("SQL语句:\nINSERT INTO authTab VALUES('" +
                 auth + "','" + sex + "','" + bir + "','" + tel + "','" + mail + "')" + "\n加入成功");
      }
    catch (SQLException ex)
      {
      System.err.println("SQLException: " + ex.getMessage());
      }
    }
  }



 class AuthFields extends JPanel
  {
  private JPanel labelPanel, fieldPanel,sexPanel,birPanel,mailPanel;
  private String labels[] = {"姓名:", "性别:","生日:","电话:","mail:"};
  JTextField auth, sex,bir,tel,mail;
  public AuthFields()
    {
    labelPanel = new JPanel();
    labelPanel.setLayout(new GridLayout(labels.length,1));
    for (int i=0; i<labels.length; i++)
        labelPanel.add(new JLabel(labels[i], 0));
    sexPanel = new JPanel();
    sexPanel.setLayout(new GridLayout(labels.length, 1));
    birPanel = new JPanel();
    birPanel.setLayout(new GridLayout(labels.length, 1));
    fieldPanel = new JPanel();
    fieldPanel.setLayout(new GridLayout(labels.length, 1));
    mailPanel = new JPanel();
    mailPanel.setLayout(new GridLayout(labels.length, 1));
    auth = new JTextField(10);
    fieldPanel.add(auth);
    sex = new JTextField(10);
    fieldPanel.add(sex);
    bir = new JTextField(8);
    fieldPanel.add(bir);
    tel = new JTextField(10);
    fieldPanel.add(tel);
    mail = new JTextField(10);
    fieldPanel.add(mail);
    setLayout(new GridLayout(1,2));
    add(labelPanel);  
    add(sexPanel);
    add(birPanel);
    add(fieldPanel);
    add(mailPanel);
    }
  }



//====================== AuthFind.java =======================
 class AuthFind implements ActionListener
  {
  private AuthFields fields;
  private JTextArea ta;
  private Connection con;
  public AuthFind(Connection c, AuthFields f, JTextArea a)
    {
    con = c;
    fields = f;
    ta = a;
    }
  public void actionPerformed(ActionEvent e)
    {
    try
      {
      if (!fields.tel.getText().equals(""))
        {
        Statement stmt =con.createStatement();
        String query = "SELECT * FROM authTab " +
                       "WHERE tel = '" +
                       fields.tel.getText() + "'";
        ta.setText("SQL语句: \n"+query+"\n");
        ResultSet rs = stmt.executeQuery(query);
        showResultSet(rs);
        ta.append("查询成功\n");
        stmt.close();
        }
      else
        ta.setText("请输入电话后按查找钮\n");
      }
    catch (SQLException e2)
      {
      e2.printStackTrace();
      ta.append("\n"+e2.toString()+"\n");
      }
    }
  public void showResultSet(ResultSet rs)
    {
    try
      {
      if (rs.next())
      {  fields.auth.setText(rs.getString(1));
      fields.sex.setText(rs.getString(2));
      fields.bir.setText(rs.getString(3));
      fields.mail.setText(rs.getString(5));}
      else
      { fields.auth.setText("找不到合乎条件的记录");
      fields.sex.setText("");
      fields.bir.setText("");
      fields.mail.setText("");}
      }
    catch (SQLException e3)
      {
      e3.printStackTrace();
      ta.append("\n"+e3.toString()+"\n");
      }
    }
  }


class AuthHelp implements ActionListener
  {
  private JTextArea ta;
  public AuthHelp(JTextArea a)
    {
    ta = a;
    }
  public void actionPerformed(ActionEvent e)
    {
    ta.setText(
      "按钮操作说明\n" +
      "查询钮:输入电话后按查找按钮找记录\n" +
      "加入钮:输入电话及姓名后按加入钮添加一个记录\n" +
      "更新钮:输入电话及姓名后按更新钮更新一个记录\n" +
      "删除钮:输入电话后按删除按钮删除一个记录\n" +
      "SQL钮:按SQL钮输入SQL语句后按OK按钮显示查询结果");
    }
  }




class AuthSql implements ActionListener
  {
  private JTextArea ta;
  private Connection con;
  public AuthSql(Connection c, JTextArea a )
    {
    con = c;
    ta = a;
    }
  public void actionPerformed(ActionEvent e)
    {
    try
      {
      String query=JOptionPane.showInputDialog(
        "请输入SQL语句如:select * from authTab");
      if (query.length()==0) query="select * from authTab";
      Statement stmt=con.createStatement();
      ResultSet rs=stmt.executeQuery(query);
      ta.setText("SQL语句: "+query+"\n");
      while (rs.next())
        ta.append(rs.getString(1)+"\t"+rs.getString(2)+"\n");
      }
    catch (SQLException ex)
      {
      System.err.println("SQLException: " + ex.getMessage());
      }
    }
  }



//==================== AuthUpdate.java =======================
class AuthUpdate implements ActionListener
  {
  private AuthFields fields;
  private JTextArea ta;
  private Connection con;
  public AuthUpdate( Connection c, AuthFields f,JTextArea a )
    {
    con = c;
    fields = f;
    ta = a;
    }
  public void actionPerformed(ActionEvent e)
    {
    try
      {
      Statement stmt = con.createStatement();
      if (!fields.tel.getText().equals(""))
        {
      	PreparedStatement pstmt=con.prepareStatement(
        "UPDATE authTab SET auth=?,sex=?,birthday=?,mail=? WHERE tel=?"); 
        String auth=fields.auth.getText();
        String tel=fields.tel.getText();
        String sex=fields.sex.getText();
        String bir=fields.bir.getText();
        String mail=fields.mail.getText();
        pstmt.setString(1, auth);
        pstmt.setString(2, sex);
        pstmt.setString(3, bir);
        pstmt.setString(4, tel);
        pstmt.setString(5, mail);
        pstmt.executeUpdate();
        pstmt.close();
        ta.setText("(SQL语句:\nUPDATE authTab SET auth='" +
 auth + "',sex='"+sex+"',bir='"+bir+"',mail='"+mail+"' WHERE tel='" + tel + "')" +"\n更新成功");
        }
      else
        ta.setText("你只可对既存记录更新\n");
      }
    catch (SQLException e2)
      {
      e2.printStackTrace();
      ta.append("\n"+e2.toString()+"\n");
      }
    }
  }


class MyWindowListener extends WindowAdapter //处理主程序委托的关闭窗口事件
  {
  public void windowClosing(WindowEvent e)
    {
    System.exit(1);
    }
  }


//==================== AuthDelete.java =======================
class AuthDelete implements ActionListener
  {
  private AuthFields fields;
  private JTextArea ta;
  private Connection con;
  public AuthDelete(Connection c, AuthFields f, JTextArea a)
    {
    con = c;
    fields = f;
    ta = a;
    }
  public void actionPerformed(ActionEvent e)
    {
    try
      {
      Statement stmt = con.createStatement();
      if ( ! fields.tel.getText().equals(""))
        {
        String query = "delete from authTab where tel = '" +
                       fields.tel.getText() + "'";
        ta.setText("SQL查询:\n"+query+"\n");
        int result = stmt.executeUpdate(query);
        if (result==1)
           ta.append("删除成功\n");
        else
          {
          ta.append("删除失败\n");
          fields.auth.setText("");
          fields.tel.setText("");
          }
        stmt.close();
        }
      else
        ta.setText("你只可删除既存记录\n");
      }
    catch (SQLException e2)
      {
      e2.printStackTrace();
      ta.append("\n"+e2.toString()+"\n");
      }
    }
  }

⌨️ 快捷键说明

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