gpt4 book ai didi

java - 如何将 swing 文本字段中的文本添加到 Java 中的 mysql 表中?

转载 作者:可可西里 更新时间:2023-11-01 08:32:33 25 4
gpt4 key购买 nike

我有一个 sql 表:User,其中有一个字段:NAME

我创建了一个弹出对话框窗口,我应该在其中输入用户名,之后,它应该被传递到 mysql 中的 NAME 列。所以,这很简单,但作为初学者的我遇到了一些错误。有没有办法修复我的代码以使其顺利运行?

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.*;

public class Userdialog {

static final String JDBC_DRIVER="com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/mydb";
static final String USER="root";
static final String PASS="";

Connection conn = null;
Statement st = null;

JTextField name;
JButton proceed;

Userdialog(){
JFrame useradd = new JFrame("Add user to database");
useradd.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
name = new JTextField(10);
useradd.setLayout(new GridLayout(0,1));
JPanel pane = new JPanel(new GridLayout(0,1));
useradd.add(pane);
pane.add(new JLabel("First name: "));
pane.add(name);
proceed = new JButton("Add that user");
pane.add(proceed);
proceed.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//HOW TO MAKE IT TO THE SQL TABLE???
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(DB_URL,USER,PASS);
st = (Statement) conn.createStatement();
st.execute("insert into user (name) values('Philip')");
JOptionPane.showMessageDialog(null,"Inserted Successfully!");
}
catch(Exception ex) { ex.printStackTrace(); }
}});
useradd.pack();
useradd.setSize(300,200);
useradd.setVisible(true);
}}

主类

public class Main {
public static void main(String[] args) {
Userdialog mc = new Userdialog();
}}

最佳答案

仅凭您的代码我就发现了一些问题:

static final String MYNAME = JTextField.getText();

也会抛出一个异常,我看到你没有在任何地方使用它,所以你可以把它扔掉。

另外,如果你 ahev mysql library jar 那么你导入错误

import java.beans.Statement;

把它拿出来,而不是使用 mysql 语句:

import com.mysql.jdbc.Statement;

到目前为止,尝试这些更改,我将尝试编译您的代码,看看我能得到什么。

编辑1***

还有一个小提示,当捕获异常时,它总是被认为是记录异常的好习惯,以下就足够了:

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

编辑2***

抱歉,我花了这么长时间,这是您代码的工作版本:

import com.mysql.jdbc.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;

public class Userdialog {

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/mydb";
static final String USER = "root";
static final String PASS = "";

Connection conn = null;
Statement st = null;

JTextField name;
JButton proceed;

public Userdialog()
{
JFrame useradd = new JFrame("Add user to database");
useradd.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
name = new JTextField(10);
useradd.setLayout(new GridLayout(0, 1));
JPanel pane = new JPanel(new GridLayout(0, 1));
useradd.add(pane);
pane.add(new JLabel("First name: "));
pane.add(name);
proceed = new JButton("Add that user");
pane.add(proceed);
proceed.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
//HOW TO MAKE IT TO THE SQL TABLE???
try
{
Class.forName("com.mysql.jdbc.Driver");
conn= DriverManager.getConnection(DB_URL, USER, PASS);
st = (Statement) conn.createStatement();
st.execute("insert into user (name) values('"+name.getText()+"')");
JOptionPane.showMessageDialog(null, "Inserted Successfully!");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}});
useradd.pack();
useradd.setSize(300,200);
useradd.setVisible(true);
}

public static void main(String[] args)
{
new Userdialog();
}
}

关于java - 如何将 swing 文本字段中的文本添加到 Java 中的 mysql 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23131340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com