📄 同学录.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 + -