mysql - 在 Eclipse 中单击按钮创建表

标签 mysql eclipse jdbc

我正在尝试在我的 Eclipse 代码中实现一条 sql 语句,该语句在单击“初始化数据库”按钮时创建/重新创建一个表。我相信我的创建语句是正确的,但单击按钮时我没有收到任何响应。我的说法有问题吗?或者我在代码中遗漏了其他内容?

package project_files;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JTextField;

import ConnectDB.connectDB;
import project_files.change_password;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.awt.event.ActionEvent;
public class root_login {

    private JFrame frame;

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

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

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

        JButton btnInitializeDatabase = new JButton("Initialize Database");
        btnInitializeDatabase.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
        try {

                    Class.forName("com.mysql.cj.jdbc.Driver");
                    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/userdatabase", "root", "pass1234");

                            String sql =("CREATE TABLE user ( FirstName varchar(45) DEFAULT NULL, LastName varchar(45) DEFAULT NULL, `Phone number` bigint(20) DEFAULT NULL, `Email` varchar(45) NOT NULL, `Password` varchar(45) DEFAULT NULL, `DOB` varchar(45) DEFAULT NULL, `State` varchar(45) DEFAULT NULL, PRIMARY KEY (`Email`)");

                                JOptionPane.showMessageDialog(null, "Database created Successfully...");



                            con.close();
                } catch(Exception e) {System.out.print (e);

                }




                            }
        });
        btnInitializeDatabase.setBounds(109, 71, 226, 25);
        frame.getContentPane().add(btnInitializeDatabase);

        JButton btnChangePassword = new JButton("Change Password");
        btnChangePassword.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) 
            {
                change_password info = new change_password();
                change_password.main(null);
            }
        });
        btnChangePassword.setBounds(91, 148, 257, 25);
        frame.getContentPane().add(btnChangePassword);

        JLabel lblAdminLogin = new JLabel("Admin Login");
        lblAdminLogin.setBounds(186, 12, 98, 15);
        frame.getContentPane().add(lblAdminLogin);
    }
}

最佳答案

您忘记对数据库实际执行此语句。

Statement s = con.createStatement();
s.execute("YOUR_SQL_STRING");
s.close();

关于mysql - 在 Eclipse 中单击按钮创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59024616/

相关文章:

eclipse - Visual Studio + 远程 gdb 调试

Java Class.forName,JDBC连接加载驱动

mysql - 如何启用 MYSQL 用户访问除一个数据库之外的所有数据库

java - 如何通过双击表格行从一个选项卡移动到另一个选项卡

mysql - 如何快速地在 MySQL 中的多列中进行全文搜索?

c - switch 语句不适用于变量为 '\n' 的位置,例如 Enter?

java - eclipse不匹配构造函数方法调用

java - Java中数据库连接超时

java - "java.sql.SQLException: [Amazon](500310) Invalid operation: syntax error at end of input"用于使用 JDBC 的 redshift 查询

java - 有两个sql插入的事务