gpt4 book ai didi

java - 使用 JCreator 将 Java 连接到 MS Access

转载 作者:行者123 更新时间:2023-11-30 22:04:35 26 4
gpt4 key购买 nike

我对这个还是陌生的。但是,我在向 mt 数据库中插入数据时遇到问题。我认为我的脚本中存在很多错误

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Student extends JFrame
{
//Component's name
private JLabel lblName,lblAge,lblGrade;
private JTextField txtName, txtAge,txtGrade;
private JButton btnAdd;
String c;
String d;
String e;

public void Student()
{

Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "Information";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "abcd";

Container container = getContentPane();
container.setLayout(new FlowLayout());

lblName=new JLabel("Name: ");
container.add(lblName);

txtName=new JTextField(30);
container.add(txtName);

lblAge=new JLabel("Age: ");
container.add(lblAge);

txtAge=new JTextField(2);
container.add(txtAge);

lblGrade=new JLabel("Grade: ");
container.add(lblGrade);

txtGrade=new JTextField(1);
container.add(txtGrade);

btnAdd=new JButton("Add");
container.add(btnAdd);

btnAdd.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ev)
{
c=txtName.getText();
d=txtAge.getText();
e=txtGrade.getText();
try
{
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url + dbName, userName, password);

PreparedStatement statement = conn.prepareStatement("INSERT INTO Information ('StudentName', 'StudentAge','Grade') VALUES ('"+c+"', '"+d+"', '"+e+"'')");
statement.executeQuery();

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

});

setSize(300,300);
setVisible(true);

}
public static void main(String[]args)
{
Student application = new Student();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

所以,谁能帮我解决这里的问题?请查看下面的屏幕截图以获取输出。

enter image description here

最佳答案

1-你不需要使用 '' 到你的列 'StudentName' 的名称,如果你需要那么使用 `` 而不是 ''

2-你在这里的查询有问题:

...('"+c+"', '"+d+"', '"+e+"'')

你最后设置了两个'',这就出问题了。

你为什么不使用?像这样:

PreparedStatement statement = 
conn.prepareStatement("INSERT INTO Information (StudentName, StudentAge, Grade) VALUES (?, ?, ?)");

statement.setString(1, c);
statement.setString(2, d);
statement.setString(3, e);

statement.executeQuery();

您可以在此处了解有关 Prepared Statement doc 的更多信息

关于java - 使用 JCreator 将 Java 连接到 MS Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42185515/

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