I have been studying Java for 4 months and this project is what I came up with. I know I should make more classes and methods for quality but I am still learning. Please help to me if there is any simpler and cleaner ways to achieve the same results as this.

  

    import java.awt.FlowLayout;
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.JTable;
    import javax.swing.JLabel;
    import java.awt.Font;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Vector;
    import javax.swing.JTextField;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;
    
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    
    public class GUI extends JDialog {
    
        private JTextField txtID;
        private JTextField txtName;
        private JTextField txtDep;
        private JTextField txtGender;
        private JTextField txtPosition;
        private JTextField txtSalary;
        private JTable table;
        ResultSet rs;
        Connection conn;
        Statement statement;
    
        public GUI() throws SQLException {
    
            setBounds(100, 100, 671, 448);
            getContentPane().setLayout(null);
             try {
                    // Set System L&F
                    UIManager.setLookAndFeel(
                            UIManager.getSystemLookAndFeelClassName());
                } catch (UnsupportedLookAndFeelException | ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
                    System.out.println(ex.getMessage());
                }
    
    
            table = new JTable();
            JScrollPane scrollPane = new JScrollPane();
            scrollPane.setBounds(10, 11, 635, 205);
            getContentPane().add(scrollPane);
    
            scrollPane.setViewportView(table);
    
            String dbURl = "jdbc:mysql://localhost:3306/employees";
            try {
                conn = DriverManager.getConnection(dbURl, "root", "1234");
                if (conn != null) {
                    System.out.println("Connected");
    
                    String s1 = "SELECT * FROM employees";
                    statement = conn.createStatement();
    
                    rs = statement.executeQuery(s1);
    
                    table.setModel(buildTableModel(rs));
                    table.setBounds(10, 11, 634, 216);
    
                }
    
            } catch (Exception ex) {
                System.out.println(ex.getMessage());
            }
    
            table.getSelectionModel().addListSelectionListener((ListSelectionEvent event) -> {
                try {
    
                    if (table.getSelectedRow() >= 0) {
                        Object employee_id = table.getValueAt(table.getSelectedRow(), 0);
                        Object full_name = table.getValueAt(table.getSelectedRow(), 1);
                        Object gender = table.getValueAt(table.getSelectedRow(), 2);
                        Object department = table.getValueAt(table.getSelectedRow(), 3);
                        Object position = table.getValueAt(table.getSelectedRow(), 4);
                        Object salary = table.getValueAt(table.getSelectedRow(), 5);
    
                        txtID.setText(employee_id.toString());
                        txtName.setText(full_name.toString());
                        txtGender.setText(gender.toString());
                        txtDep.setText(department.toString());
                        txtPosition.setText(position.toString());
                        txtSalary.setText(salary.toString());
                    }
                } catch (Exception ex) {
                    System.out.println(ex.getMessage());
                }
            });
    
            JPanel buttonPane = new JPanel();
            buttonPane.setBounds(0, 376, 655, 33);
            FlowLayout fl_buttonPane = new FlowLayout(FlowLayout.LEFT);
            fl_buttonPane.setHgap(10);
            buttonPane.setLayout(fl_buttonPane);
            getContentPane().add(buttonPane);
    
            JButton btnAdd = new JButton("ADD");
            btnAdd.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    String sql_stmt = "INSERT INTO employees (full_name,gender,department,position,salary)";
                    sql_stmt += " VALUES ('" + txtName.getText() + "','" + txtGender.getText() + "','" + txtDep.getText()
                            + "','" + txtPosition.getText() + "','" + txtSalary.getText() + "')";
    
                    try {
    
                        statement.executeUpdate(sql_stmt);
                        rs = statement.executeQuery("select * from employees");
                        table.setModel(buildTableModel(rs));
    
                    } catch (SQLException e) {
                        System.out.println(e.getMessage());
                    }
    
                    clearInputBoxes();
                }
            });
            buttonPane.add(btnAdd);
    
            JButton btnUpdate = new JButton("UPDATE");
            btnUpdate.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    String sql_stmt3 = "UPDATE employees SET full_name = '" + txtName.getText() + "'";
                    sql_stmt3 += ",gender = '" + txtGender.getText() + "'";
                    sql_stmt3 += ",department = '" + txtDep.getText() + "'";
                    sql_stmt3 += ",position = '" + txtPosition.getText() + "'";
                    sql_stmt3 += ",salary = '" + txtSalary.getText() + "'";
                    sql_stmt3 += " WHERE employee_id = '" + txtID.getText() + "'";
    
                    try {
    
                        statement.executeUpdate(sql_stmt3);
                        rs = statement.executeQuery("select * from employees");
                        table.setModel(buildTableModel(rs));
    
                    } catch (SQLException e) {
                        System.out.println(e.getMessage());
                    }
    
                    clearInputBoxes();
                }
            });
            btnUpdate.setActionCommand("OK");
            buttonPane.add(btnUpdate);
            getRootPane().setDefaultButton(btnUpdate);
    
            JButton btnDel = new JButton("DELETE");
            btnDel.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
    
                    String sql_stmt2 = "DELETE FROM employees WHERE employee_id = '" + txtID.getText() + "'";
                    try {
    
                        statement.executeUpdate(sql_stmt2);
                        rs = statement.executeQuery("select * from employees");
                        table.setModel(buildTableModel(rs));
    
                    } catch (SQLException e) {
                        System.out.println(e.getMessage());
                    }
    
                    clearInputBoxes();
                }
    
            });
    
            btnDel.setActionCommand("Cancel");
            buttonPane.add(btnDel);
    
            JLabel lblID = new JLabel("ID");
            lblID.setFont(new Font("Verdana", Font.BOLD, 14));
            lblID.setBounds(26, 237, 79, 23);
            getContentPane().add(lblID);
    
            JLabel lblFullname = new JLabel("Fullname");
            lblFullname.setFont(new Font("Verdana", Font.BOLD, 14));
            lblFullname.setBounds(26, 271, 79, 23);
            getContentPane().add(lblFullname);
    
            JLabel lblGender = new JLabel("Gender");
            lblGender.setFont(new Font("Verdana", Font.BOLD, 14));
            lblGender.setBounds(340, 237, 79, 23);
            getContentPane().add(lblGender);
    
            JLabel lblPosition = new JLabel("Position");
            lblPosition.setFont(new Font("Verdana", Font.BOLD, 14));
            lblPosition.setBounds(340, 271, 79, 23);
            getContentPane().add(lblPosition);
    
            JLabel lblDep = new JLabel("DEP");
            lblDep.setFont(new Font("Verdana", Font.BOLD, 14));
            lblDep.setBounds(26, 305, 79, 23);
            getContentPane().add(lblDep);
    
            JLabel lblSalary = new JLabel("Salary");
            lblSalary.setFont(new Font("Verdana", Font.BOLD, 14));
            lblSalary.setBounds(340, 305, 79, 23);
            getContentPane().add(lblSalary);
    
            txtID = new JTextField();
            txtID.setBounds(115, 240, 215, 20);
            getContentPane().add(txtID);
            txtID.setColumns(10);
    
            txtName = new JTextField();
            txtName.setColumns(10);
            txtName.setBounds(115, 274, 215, 20);
            getContentPane().add(txtName);
    
            txtDep = new JTextField();
            txtDep.setColumns(10);
            txtDep.setBounds(115, 308, 215, 20);
            getContentPane().add(txtDep);
    
            txtGender = new JTextField();
            txtGender.setColumns(10);
            txtGender.setBounds(429, 240, 107, 20);
            getContentPane().add(txtGender);
    
            txtPosition = new JTextField();
            txtPosition.setColumns(10);
            txtPosition.setBounds(429, 274, 215, 20);
            getContentPane().add(txtPosition);
    
            txtSalary = new JTextField();
            txtSalary.setColumns(10);
            txtSalary.setBounds(429, 308, 215, 20);
            getContentPane().add(txtSalary);
    
        }
    
        public static DefaultTableModel buildTableModel(ResultSet rs) throws SQLException {
    
            ResultSetMetaData metaData = rs.getMetaData();
    
            // names of columns
            Vector<String> columnNames = new Vector<String>();
    
            int columnCount = metaData.getColumnCount();
    
            for (int column = 1; column <= columnCount; column++) {
                columnNames.add(metaData.getColumnName(column));
    
            }
    
            // data of the table
            Vector<Vector<Object>> data = new Vector<Vector<Object>>();
    
            while (rs.next()) {
    
                Vector<Object> vector = new Vector<Object>();
    
                for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                    vector.add(rs.getObject(columnIndex));
                }
                data.add(vector);
            }
    
            return new DefaultTableModel(data, columnNames);
    
        }
    
        private void clearInputBoxes() {
            txtID.setText("");
            txtName.setText("");
            txtGender.setText("");
            txtDep.setText("");
            txtPosition.setText("");
            txtSalary.setText("");
        }
    
        public static void main(String[] args) throws Exception {
            GUI g = new GUI();
            g.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
            g.setVisible(true);
        }
    }