java连接mysql数据库,GUI实现简单的增删查改操作(新手版)

时间:2024-03-19 17:15:04

1、在数据库jdbc中建立表teach,如下;

java连接mysql数据库,GUI实现简单的增删查改操作(新手版)

 

2、初始界面

java连接mysql数据库,GUI实现简单的增删查改操作(新手版)

 

3.1、按姓名查找(number为主键)

java连接mysql数据库,GUI实现简单的增删查改操作(新手版)

3.2、按学号进行删除(建议先查询再删除,也可直接输入学号删除)

java连接mysql数据库,GUI实现简单的增删查改操作(新手版)

3.3、增加记录(学号不可重复(主键))

java连接mysql数据库,GUI实现简单的增删查改操作(新手版)

3.4、修改记录

java连接mysql数据库,GUI实现简单的增删查改操作(新手版)

注意:本小应用未对异常进行处理,需要进行深一步优化,支持初学者对知识巩固。

代码如下

1:

package studentManager;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public final class JDBCUtils {
    private static String url = "jdbc:mysql://127.0.0.1:3306/jdbc?"
            + "useUnicode=true&characterEncoding=utf-8&useSSL=false";
    private static String user = "root";
    private static String password = "user182872";

    private JDBCUtils() {}
    static {// 静态代码只会执行一次
        // 1.加载驱动,
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }

    public static void free(ResultSet rs, Statement st, Connection conn) {
        try {
            if (rs != null)
                rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (st != null)
                    st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                if (conn != null)
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
            }
        }
    }
}

 

 

2:

package studentManager;

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.awt.event.ActionEvent;

public class StudentManager {

    private JFrame frame;
    private JTextField nameT;
    private JTextField cT;
    private JTextField mT;
    private JTextField classT;
    private JTextField eT;
    private JTextField numberT;
    private JTextArea info;
    private Connection conn = null;
    private java.sql.PreparedStatement ps = null;
    private ResultSet rs = null;
    private String name;
    private String number;
    private String team;
    private String chinese;
    private String math;
    private String english;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    StudentManager window = new StudentManager();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public StudentManager() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 433, 303);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JLabel label = new JLabel("\u59D3\u540D");
        label.setBounds(23, 22, 54, 15);
        frame.getContentPane().add(label);

        JLabel label_1 = new JLabel("\u5B66\u53F7");
        label_1.setBounds(102, 22, 54, 15);
        frame.getContentPane().add(label_1);

        JLabel label_2 = new JLabel("\u73ED\u7EA7");
        label_2.setBounds(174, 22, 34, 15);
        frame.getContentPane().add(label_2);

        JLabel label_3 = new JLabel("\u8BED\u6587");
        label_3.setBounds(231, 22, 54, 15);
        frame.getContentPane().add(label_3);

        JLabel label_4 = new JLabel("\u6570\u5B66");
        label_4.setBounds(289, 22, 54, 15);
        frame.getContentPane().add(label_4);

        JLabel label_5 = new JLabel("\u82F1\u8BED");
        label_5.setBounds(357, 22, 54, 15);
        frame.getContentPane().add(label_5);

        nameT = new JTextField();
        nameT.setBounds(10, 47, 56, 24);
        frame.getContentPane().add(nameT);

        cT = new JTextField();
        cT.setBounds(228, 47, 41, 24);
        frame.getContentPane().add(cT);

        mT = new JTextField();
        mT.setBounds(288, 47, 41, 24);
        frame.getContentPane().add(mT);

        eT = new JTextField();
        eT.setBounds(353, 47, 41, 24);
        frame.getContentPane().add(eT);

        classT = new JTextField();
        classT.setBounds(167, 47, 41, 24);
        frame.getContentPane().add(classT);

        numberT = new JTextField();
        numberT.setBounds(89, 47, 56, 24);
        frame.getContentPane().add(numberT);

        JButton addB = new JButton("\u589E");
        addB.addActionListener(new Handle() {
            public void actionPerformed(ActionEvent e) {
                try {
                    get();
                    add();
                    info.setText("插入成功!");
                    // set();
                } catch (SQLException e1) {
                    // e1.printStackTrace();
                    info.setText("插入失败!请确认学号是否重复?");
                }
            }
        });
        addB.setBounds(10, 101, 69, 23);
        frame.getContentPane().add(addB);

        JButton deleteB = new JButton("\u5220");
        deleteB.addActionListener(new Handle() {
            public void actionPerformed(ActionEvent e) {
                try {
                    delete();
                    clc();
                    info.setText("删除成功!");
                } catch (SQLException e1) {
                    // e1.printStackTrace();
                    info.setText("删除失败!请确认该记录是否存在?");
                }
            }
        });
        deleteB.setBounds(110, 101, 69, 23);
        frame.getContentPane().add(deleteB);

        JButton lookB = new JButton("\u67E5");
        lookB.addActionListener(new Handle() {
            public void actionPerformed(ActionEvent e) {
                try {
                    get();
                    look();
                    set();
                    info.setText("查询成功!");
                } catch (SQLException e1) {
                    // e1.printStackTrace();
                    info.setText("查询失败!请确认是否以输入姓名进行查询?");
                }
            }
        });
        lookB.setBounds(216, 101, 69, 23);
        frame.getContentPane().add(lookB);

        JButton changeB = new JButton("\u6539");
        changeB.addActionListener(new Handle() {
            public void actionPerformed(ActionEvent e) {
                try {
                    get();
                    update();
                    set();
                    info.setText("修改成功!");
                } catch (SQLException e1) {
                    // e1.printStackTrace();
                    info.setText("修改失败!");
                }
            }
        });
        changeB.setBounds(318, 101, 69, 23);
        frame.getContentPane().add(changeB);

        JButton clcB = new JButton("\u6E05\u7A7A");
        clcB.addActionListener(new Handle() {
            public void actionPerformed(ActionEvent e) {
                clc();
            }
        });
        clcB.setBounds(301, 231, 93, 23);
        frame.getContentPane().add(clcB);

        info = new JTextArea();
        info.setBounds(10, 156, 384, 65);
        frame.getContentPane().add(info);

        JButton exitB = new JButton("\u9000\u51FA");
        exitB.addActionListener(new Handle() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        exitB.setBounds(10, 231, 93, 23);
        frame.getContentPane().add(exitB);
    }

    private void look() throws SQLException {
        try {
            conn = JDBCUtils.getConnection();
            String sql1 = "select * from teach where name=?";
            ps = conn.prepareStatement(sql1);
            ps.setString(1, name);
            rs = ps.executeQuery();
            while (rs.next()) {
                read();
            }
        } finally {
            rs.close();
            ps.close();
            conn.close();
        }

    }

    private void add() throws SQLException {
        try {
            conn = JDBCUtils.getConnection();
            String sql1 = "insert into teach values(?,?,?,?,?,?)";
            ps = conn.prepareStatement(sql1);
            setStringOne();

        } finally {
            rs.close();
            ps.close();
            conn.close();
        }
    }

    private void delete() throws SQLException {
        try {
            conn = JDBCUtils.getConnection();
            String sql1 = "delete from teach where number = ?";
            ps = conn.prepareStatement(sql1);
            ps.setInt(1, Integer.parseInt(number));
            ps.executeUpdate();
        } finally {
            rs.close();
            ps.close();
            conn.close();
        }
    }

    private void update() throws SQLException {
        try {
            conn = JDBCUtils.getConnection();
            String sql1 = "update teach set name = ? , class = ? , Chinese = ?, Math = ? , English = ? where number = ?";
            ps = conn.prepareStatement(sql1);
            setStringTow();
        } finally {
            rs.close();
            ps.close();
            conn.close();
        }
    }

    private void read() throws SQLException {
        name = rs.getString(1);
        number = rs.getString(2);
        team = rs.getString(3);
        chinese = rs.getString(4);
        math = rs.getString(5);
        english = rs.getString(6);
        System.out.println(name + "\t" + number + "\t" + team + "\t" + chinese + "\t" + math + "\t" + english);
    }

    private void get() {
        name = nameT.getText().trim();
        number = numberT.getText().trim();
        team = classT.getText().trim();
        chinese = cT.getText().trim();
        math = mT.getText().trim();
        english = eT.getText().trim();
    }

    private void set() {
        nameT.setText(name);
        numberT.setText(number + "");
        classT.setText(team);
        cT.setText(chinese + "");
        mT.setText(math + "");
        eT.setText(english + "");
    }

    private void setStringOne() throws SQLException {
        ps.setString(1, name);
        ps.setInt(2, Integer.parseInt(number));
        ps.setString(3, team);
        ps.setInt(4, Integer.parseInt(chinese));
        ps.setInt(5, Integer.parseInt(math));
        ps.setInt(6, Integer.parseInt(english));
        ps.executeUpdate();
    }

    private void setStringTow() {
        try {
            ps.setString(1, name);
            ps.setString(2, team);
            ps.setInt(3, Integer.parseInt(chinese));
            ps.setInt(4, Integer.parseInt(math));
            ps.setInt(5, Integer.parseInt(english));
            ps.setInt(6, Integer.parseInt(number));
            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    private void clc() {
        nameT.setText(" ");
        numberT.setText(" ");
        classT.setText(" ");
        cT.setText(" ");
        mT.setText(" ");
        eT.setText(" ");
    }

    class Handle implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
        }
    }
}