通讯录程序
要求:使用图形用户界面。用数据库建立 1 个通讯录表。(不限使用
哪种数据库)。能连接数据库并实现查询、增、删、改等功能。
CreateJFrame
1 package 窗口;
2
3 import java.awt.Color;
4 import java.awt.Container;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7
8 import javax.swing.JButton;
9 import javax.swing.JFrame;
10 import javax.swing.JLabel;
11 import javax.swing.JTextField;
12
13 public class CreateAdd extends JFrame{
14 CreateAdd(String title){
15 JFrame window=new JFrame(title);
16 Container con = window.getContentPane();
17 con.setLayout(null);
18 con.setBackground(Color.white);
19 JLabel label1=new JLabel("学号:");
20 JLabel label2=new JLabel("姓名:");
21 JLabel label3=new JLabel("电话:");
22 JLabel label4=new JLabel("性别:");
23 JLabel label5=new JLabel("地址:");
24 JButton j1=new JButton("确认");
25 JButton j2=new JButton("退出");
26 JTextField text1=new JTextField("",20);
27 JTextField text2=new JTextField("",20);
28 JTextField text3=new JTextField("",20);
29 JTextField text4=new JTextField("",20);
30 JTextField text5=new JTextField("",20);
31 con.add(label1);con.add(label2);con.add(label3);con.add(label4);con.add(label5);
32 con.add(text1);con.add(text2);con.add(text3);con.add(text4);con.add(text5);
33 con.add(j1);con.add(j2);
34 label1.setBounds(20,20,100,50);
35 label2.setBounds(20,40,100,50);
36 label3.setBounds(20,60,100,50);
37 label4.setBounds(20,80,100,50);
38 label5.setBounds(20,100,100,50);
39 text1.setBounds(50, 35,100, 20);
40 text2.setBounds(50, 55,100, 20);
41 text3.setBounds(50, 75,100, 20);
42 text4.setBounds(50, 95,100, 20);
43 text5.setBounds(50, 115,100, 20);
44 j1.setBounds(50, 200, 100, 50);
45 j2.setBounds(200, 200, 100, 50);
46 j1.addActionListener(new ActionListener(){
47 public void actionPerformed(ActionEvent e) {
48 String s1=text1.getText().toString(),s2=text2.getText().toString();
49 String s3=text3.getText().toString(),s4=text4.getText().toString();
50 String s5=text5.getText().toString();
51 new insert_data(s1,s2,s3,s4,s5);
52 }
53 });
54 j2.addActionListener(new ActionListener(){
55 public void actionPerformed(ActionEvent e) {
56 window.dispose();
57 }
58 });
59 window.setVisible(true);
60 window.setSize(500,500);
61 window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
62 }
63 }
CreateAdd
1 package 窗口;
2
3 import java.awt.Color;
4 import java.awt.Container;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7
8 import javax.swing.JButton;
9 import javax.swing.JFrame;
10 import javax.swing.JLabel;
11 import javax.swing.JTextField;
12
13 public class CreateDelete{
14 CreateDelete(String title){
15 JFrame window=new JFrame(title);
16 Container con = window.getContentPane();
17 con.setLayout(null);
18 JLabel label1=new JLabel("学号:");
19 JButton j1=new JButton("确认");
20 JButton j2=new JButton("退出");
21 JTextField text1=new JTextField("",20);
22 con.add(label1);
23 con.add(text1);
24 con.add(j1);
25 con.add(j2);
26 label1.setBounds(20,20,100,50);
27 text1.setBounds(100, 35,100, 20);
28 j1.setBounds(50, 200, 100, 50);
29 j2.setBounds(200, 200, 100, 50);
30 j1.addActionListener(new ActionListener(){
31 public void actionPerformed(ActionEvent e) {
32 String s=text1.getText().toString();
33 new delete_data(s);
34 }
35 });
36 j2.addActionListener(new ActionListener(){
37 public void actionPerformed(ActionEvent e) {
38 window.dispose();
39 }
40 });
41 con.setBackground(Color.white);
42 window.setVisible(true);
43 window.setSize(500,500);
44 window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
45 }
46 }
CreateDelete
1 package 窗口;
2
3 import java.awt.Color;
4 import java.awt.Container;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7 import java.awt.event.KeyAdapter;
8 import java.awt.event.KeyEvent;
9 import java.sql.SQLException;
10
11 import javax.swing.JButton;
12 import javax.swing.JComboBox;
13 import javax.swing.JFrame;
14 import javax.swing.JLabel;
15 import javax.swing.JTextField;
16
17 public class CreateQuery {
18 CreateQuery(String title){
19 JFrame window=new JFrame(title);
20 Container con = window.getContentPane();
21 con.setLayout(null);
22 con.setBackground(Color.white);
23 JComboBox box=new JComboBox();
24 box.addItem("学号");box.addItem("姓名");box.addItem("性别");box.addItem("电话");
25 JButton j1=new JButton("确认");
26 JButton j2=new JButton("退出");
27 JTextField text1=new JTextField("",20);
28 con.add(box);
29 con.add(text1);
30 con.add(j1);
31 con.add(j2);
32 box.setBounds(20,30,70,20);
33 text1.setBounds(100, 35,100, 20);
34 j1.setBounds(50, 200, 100, 50);
35 j2.setBounds(200, 200, 100, 50);
36 j1.addActionListener(new ActionListener(){
37 public void actionPerformed(ActionEvent e) {
38 String s=text1.getText().toString();
39 String s2 = box.getSelectedItem().toString();
40 if(s2=="学号") s2="Sno"; if(s2=="姓名") s2="name";if(s2=="电话") s2="tel";if(s2=="性别") s2="sex";
41 new select_data(s,s2);
42 }
43 });
44 j2.addActionListener(new ActionListener(){
45 public void actionPerformed(ActionEvent e) {
46 window.dispose();
47 }
48 });
49 window.setVisible(true);
50 window.setSize(500,500);
51 window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
52 }
53 }
CreateQuery
1 package 窗口;
2
3 import java.awt.Color;
4 import java.awt.Container;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7
8 import javax.swing.JButton;
9 import javax.swing.JComboBox;
10 import javax.swing.JFrame;
11 import javax.swing.JLabel;
12 import javax.swing.JTextField;
13
14 public class CreateUpdata {
15 CreateUpdata(String title){
16 JFrame window=new JFrame(title);
17 Container con = window.getContentPane();
18 con.setLayout(null);
19 JLabel label1=new JLabel("学号:");
20 JButton j1=new JButton("确认"),j2=new JButton("退出");
21 JTextField text1=new JTextField("",20),text2=new JTextField("",20);
22 JComboBox box=new JComboBox();
23 box.addItem("姓名");box.addItem("电话");box.addItem("性别");box.addItem("地址");
24 con.add(box);
25 con.add(label1);
26 con.add(text1);con.add(text2);
27 con.add(j1);con.add(j2);
28 box.setBounds(20, 90, 70, 25);
29 label1.setBounds(20,20,100,50);
30 text1.setBounds(100, 35,100, 20);text2.setBounds(100,95,100,20);
31 j1.setBounds(50, 200, 100, 50);j2.setBounds(200, 200, 100, 50);
32 j1.addActionListener(new ActionListener(){
33 public void actionPerformed(ActionEvent e) {
34 String s1 = text1.getText().toString();
35 String s2 = box.getSelectedItem().toString();
36 String s3 = text2.getText().toString();
37 if(s2=="姓名") s2="name";if(s2=="电话") s2="tel";if(s2=="性别") s2="sex";if(s2=="地址") s2="adr";
38 new updata_data(s1,s2,s3);
39 }
40 });
41 j2.addActionListener(new ActionListener(){
42 public void actionPerformed(ActionEvent e) {
43 window.dispose();
44 }
45 });
46 con.setBackground(Color.white);
47 window.setVisible(true);
48 window.setSize(500,500);
49 window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
50 }
51 }
CreateUpdata
1 package 窗口;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.SQLException;
6 import java.sql.Statement;
7
8 import javax.swing.JOptionPane;
9 public class insert_data {
10 insert_data(String s1,String s2,String s3,String s4,String s5){
11 Connection conn;
12 Statement stmt;
13 String url = "jdbc:sqlserver://localhost:1433;DatabaseName=我的数据库;";
14 String sql="insert into address_list(Sno,name,tel,sex,adr) values ('"+s1+"','"+s2+"','"+s3+"','"+s4+"','"+s5+"');";
15 try {
16 conn = DriverManager.getConnection(url, "sa", "123456");
17 stmt = conn.createStatement();
18 stmt.executeUpdate(sql);
19 conn.close();
20 stmt.close();
21 }
22 catch (SQLException e) {
23 e.printStackTrace();
24 JOptionPane.showMessageDialog(null,"操作失败","error",JOptionPane.PLAIN_MESSAGE);
25 }
26 }
27 }
insert_data
1 package 窗口;
2
3 import java.sql.SQLException;
4 import java.sql.Statement;
5
6 import javax.swing.JButton;
7 import javax.swing.JFrame;
8 import javax.swing.JLabel;
9 import javax.swing.JOptionPane;
10 import javax.swing.JScrollPane;
11 import javax.swing.JTable;
12 import javax.swing.table.JTableHeader;
13
14 import java.awt.Component;
15 import java.awt.Container;
16 import java.sql.Connection;
17 import java.sql.DriverManager;
18 import java.sql.ResultSet;
19 public class select_data {
20 public select_data(String s1,String s2){
21 Connection conn;
22 Statement stmt;
23 ResultSet rs;
24 String url = "jdbc:sqlserver://localhost:1433;DatabaseName=我的数据库;";
25 String sql = "select * from address_list where "+s2+"=('"+s1+"')";
26 try {
27 conn = DriverManager.getConnection(url, "sa", "123456");
28 stmt = conn.createStatement();
29 rs = stmt.executeQuery(sql);
30 if(rs.next()){
31 String ss1= rs.getString("Sno");
32 String ss2= rs.getString("name");
33 String ss3= rs.getString("tel");
34 String ss4= rs.getString("sex");
35 String ss5= rs.getString("adr");
36 JFrame win=new form(ss1,ss2,ss3,ss4,ss5,rs);
37 win.setVisible(true);
38 win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
39 }
40 else{
41 JOptionPane.showMessageDialog(null,"没有该学生的通讯信息","error",JOptionPane.PLAIN_MESSAGE);
42 }
43 conn.close();
44 rs.close();
45 } catch (SQLException e) {
46 e.printStackTrace();
47 JOptionPane.showMessageDialog(null,"操作失败","error",JOptionPane.PLAIN_MESSAGE);
48 }
49 }
50 }
select_data
1 package 窗口;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8 import javax.swing.JFrame;
9 import javax.swing.JOptionPane;
10
11 public class updata_data {
12 updata_data(String s1,String s2,String s3){
13 Connection conn;
14 Statement stmt;
15 String url = "jdbc:sqlserver://localhost:1433;DatabaseName=我的数据库;";
16 String sql = "update address_list set "+s2+"='"+s3+"' where Sno='"+s1+"'";
17 try {
18 conn = DriverManager.getConnection(url, "sa", "123456");
19 stmt = conn.createStatement();
20 stmt.executeUpdate(sql);
21 conn.close();
22 } catch (SQLException e) {
23 e.printStackTrace();
24 JOptionPane.showMessageDialog(null,"操作失败","error",JOptionPane.PLAIN_MESSAGE);
25 }
26 }
27 }
updata_data
1 package 窗口;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.SQLException;
6 import java.sql.Statement;
7
8 import javax.swing.JOptionPane;
9
10 public class delete_data {
11 delete_data(String s){
12 Connection conn;
13 Statement stmt;
14 String url = "jdbc:sqlserver://localhost:1433;DatabaseName=我的数据库;";
15 String sql="delete from address_list where sno=('"+s+"');";
16 try {
17 conn = DriverManager.getConnection(url, "sa", "123456");
18 stmt = conn.createStatement();
19 stmt.executeUpdate(sql);
20 conn.close();
21 stmt.close();
22 }
23 catch (SQLException e) {
24 e.printStackTrace();
25 JOptionPane.showMessageDialog(null,"操作失败","error",JOptionPane.PLAIN_MESSAGE);
26 }
27 }
28 }
delete_data
1 package 窗口;
2
3 import java.awt.BorderLayout;
4 import java.awt.Color;
5 import java.awt.Container;
6 import java.sql.ResultSet;
7 import java.sql.SQLException;
8
9 import javax.swing.JButton;
10 import javax.swing.JFrame;
11 import javax.swing.JScrollPane;
12 import javax.swing.JTable;
13 public class form extends JFrame{
14 public form(String s1,String s2,String s3,String s4,String s5,ResultSet rs) throws SQLException{
15 super();
16 setTitle("所查询的信息");
17 setBounds(100,100,240,150);
18 setSize(1000,500);
19 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20 String[] columnNames = {"学号","姓名","电话","性别","地址"};
21 String[][] tableValues=new String[500][5];
22 tableValues[0][0]=s1;tableValues[0][1]=s2;tableValues[0][2]=s3;tableValues[0][3]=s4;tableValues[0][4]=s5;
23 int t=1;
24 while(rs.next()){
25 String id = rs.getString("Sno");
26 String name = rs.getString("name");
27 String telephone = rs.getString("tel");
28 String sex = rs.getString("sex");
29 String address = rs.getString("adr");
30 tableValues[t][0]=id;
31 tableValues[t][1]=name;
32 tableValues[t][2]=telephone;
33 tableValues[t][3]=sex;
34 tableValues[t][4]=address;
35 t++;
36 }
37 JTable table = new JTable(tableValues,columnNames);
38 JScrollPane scrollPane = new JScrollPane(table);
39 getContentPane().add(scrollPane, BorderLayout.CENTER);
40 }
41 }
form