分享

将信息提交到数据库后刷新Java程序

 印度阿三17 2019-11-19

我使用MySQL数据库创建了Java地址簿程序.我的程序有一个左面板和一个右面板.左侧面板将新条目写入数据库,右侧面板显示所有数据库信息.将新条目提交到数据库后,我在更新程序时遇到麻烦.我必须关闭程序,然后重新打开以显示新信息.

单击提交按钮后,如何获取地址簿以进行自我更新?

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.*;

@SuppressWarnings("serial")
public class Frame1 extends JFrame {

JLabel label1 = new JLabel("Address Book Input");
JLabel label2 = new JLabel("MySQL Address Book");

JButton submit = new JButton("Submit");

JTextField $first_name = new JTextField(20);
JTextField $last_name = new JTextField(20);
JTextField $phone = new JTextField(20);
JTextField $email = new JTextField(20);
JTextField $street = new JTextField(20);
JTextField $city = new JTextField(20);
JTextField $state = new JTextField(20);
JTextField $zip = new JTextField(20);

JLabel first_nameLabel = new JLabel("First Name: ");
JLabel last_nameLabel = new JLabel("Last Name: ");
JLabel phoneLabel = new JLabel("Phone: ");
JLabel emailLabel = new JLabel("Email: ");
JLabel streetLabel = new JLabel("Street: ");
JLabel cityLabel = new JLabel("City: ");
JLabel stateLabel = new JLabel("State: ");
JLabel zipLabel = new JLabel("Zip: ");

public Frame1() {
    super("1 Class Template");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(800, 480);
    setLocationRelativeTo(null);
    setVisible(true);
    initComponents();

}

public void initComponents() {
    JPanel panel = new JPanel(new GridLayout(0, 2));
    JPanel panelLeft = new JPanel(new GridBagLayout());
    JPanel panelRight = new JPanel(new BorderLayout());
    JScrollPane scrollPane = new JScrollPane();
    JPanel addressBook = new JPanel(new GridBagLayout());

    add(panel);
    panel.add(panelLeft);
    panel.add(panelRight);
    panelRight.add(scrollPane);
    scrollPane.setViewportView(addressBook);

    panelLeft.setBorder(BorderFactory.createLineBorder(Color.black));
    panelRight.setBorder(BorderFactory.createLineBorder(Color.black));

    GridBagConstraints gbc = new GridBagConstraints();

    label1.setFont(new Font(null, Font.PLAIN, 18));
    gbc.insets = new Insets(8, 8, 8, 8);
    gbc.gridwidth = 2;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.gridx = 0;
    gbc.gridy = 0;
    panelLeft.add(label1, gbc);

    gbc.insets = new Insets(4, 4, 4, 4);
    gbc.gridwidth = 1;
    gbc.anchor = GridBagConstraints.LINE_END;
    gbc.gridx = 0;
    gbc.gridy  ;
    panelLeft.add(first_nameLabel, gbc);
    gbc.gridy  ;
    panelLeft.add(last_nameLabel, gbc);
    gbc.gridy  ;
    panelLeft.add(phoneLabel, gbc);
    gbc.gridy  ;
    panelLeft.add(emailLabel, gbc);
    gbc.gridy  ;
    panelLeft.add(streetLabel, gbc);
    gbc.gridy  ;
    panelLeft.add(cityLabel, gbc);
    gbc.gridy  ;
    panelLeft.add(stateLabel, gbc);
    gbc.gridy  ;
    panelLeft.add(zipLabel, gbc);

    gbc.insets = new Insets(4, 4, 4, 4);
    gbc.gridwidth = 1;
    gbc.anchor = GridBagConstraints.LINE_START;
    gbc.gridx = 1;
    gbc.gridy = 1;
    panelLeft.add($first_name, gbc);
    gbc.gridy  ;
    panelLeft.add($last_name, gbc);
    gbc.gridy  ;
    panelLeft.add($phone, gbc);
    gbc.gridy  ;
    panelLeft.add($email, gbc);
    gbc.gridy  ;
    panelLeft.add($street, gbc);
    gbc.gridy  ;
    panelLeft.add($city, gbc);
    gbc.gridy  ;
    panelLeft.add($state, gbc);
    gbc.gridy  ;
    panelLeft.add($zip, gbc);

    gbc.insets = new Insets(4, 4, 4, 4);
    gbc.anchor = GridBagConstraints.LINE_END;
    gbc.gridwidth = 1;
    gbc.gridx = 1;
    gbc.gridy  ;
    submit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent arg0) {
            try {
                java.sql.Connection myConn = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/database_name",
                        "user_name", "password");

                Statement myStmt = myConn.createStatement();
                myStmt
                        .executeUpdate("INSERT INTO address_book (first_name, last_name, phone, email, street, city, state, zip) VALUES ('"
                                  $first_name.getText()
                                  "', '"
                                  $last_name.getText()
                                  "', '"
                                  $phone.getText()
                                  "', '"
                                  $email.getText()
                                  "', '"
                                  $street.getText()
                                  "', '"
                                  $city.getText()
                                  "', '"
                                  $state.getText()
                                  "', '"
                                  $zip.getText()   "') ");

                $first_name.setText("");
                $last_name.setText("");
                $phone.setText("");
                $email.setText("");
                $street.setText("");
                $city.setText("");
                $state.setText("");
                $zip.setText("");

                JOptionPane.showConfirmDialog(null,
                        "Your Data Has been Inserted", "Result",
                        JOptionPane.DEFAULT_OPTION,
                        JOptionPane.PLAIN_MESSAGE);

            }

            catch (Exception exc) {
                exc.printStackTrace();
            }
        }
    });
    panelLeft.add(submit, gbc);

    label2.setFont(new Font(null, Font.PLAIN, 18));
    gbc.insets = new Insets(8, 8, 8, 8);
    gbc.gridwidth = 2;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.gridx = 0;
    gbc.gridy = 0;
    addressBook.add(label2, gbc);

    gbc.anchor = GridBagConstraints.LINE_START;
    gbc.gridwidth = 1;
    try {
        java.sql.Connection myConn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/database_name", "user_name",
                "password");

        Statement myStmt = myConn.createStatement();

        ResultSet myRs = myStmt
                .executeQuery("SELECT * FROM address_book ORDER BY last_name, first_name");

        while (myRs.next()) {
            JLabel lab1 = new JLabel(myRs.getString("first_name")   " "
                      myRs.getString("last_name"));
            JLabel lab2 = new JLabel(myRs.getString("phone"));
            JLabel lab3 = new JLabel(myRs.getString("email"));
            JLabel lab4 = new JLabel(myRs.getString("street"));
            JLabel lab5 = new JLabel(myRs.getString("city")   ", "
                      myRs.getString("state")   " "   myRs.getString("zip"));

            gbc.insets = new Insets(4, 4, 4, 4);
            gbc.gridy  ;
            addressBook.add(lab1, gbc);
            gbc.gridy  ;
            addressBook.add(lab2, gbc);
            gbc.gridy  ;
            addressBook.add(lab3, gbc);
            gbc.gridy  ;
            addressBook.add(lab4, gbc);
            gbc.insets = new Insets(4, 4, 20, 4);
            gbc.gridy  ;
            addressBook.add(lab5, gbc);

        }
    }

    catch (Exception exc) {
        exc.printStackTrace();
    }
}

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            new Frame1();
        }
    });
}
}

解决方法:

从左侧面板插入数据后,只需调用一个函数即可,该函数将包含用新文本设置更新后的数据的代码,例如

lab1.setText($first_name);
..
..

然后将$first_name放入

null
来源:https://www./content-2-566551.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多