gpt4 book ai didi

java - 如何使用 UCanAccess 从 Java GUI 将数据输入到 MS Access

转载 作者:搜寻专家 更新时间:2023-10-30 22:30:02 25 4
gpt4 key购买 nike

我刚开始使用 UCanAccess 和 Microsoft Access 作为 java 的数据库:

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

public class Memo extends JFrame implements ActionListener {

private JTextField textField;
private JTextField textField_1;

Connection cn = null;
ResultSet rs = null;
Statement s = null;

public Memo() {

getContentPane().setBackground(Color.DARK_GRAY);
getContentPane().setLayout(null);

textField = new JTextField();
textField.setBounds(246, 0, 178, 50);
getContentPane().add(textField);
textField.setColumns(10);

JLabel lblNewLabel = new JLabel("Enter bill amount: $");
lblNewLabel.setFont(new Font("Arial Narrow", Font.BOLD, 11));
lblNewLabel.setForeground(Color.WHITE);
lblNewLabel.setBounds(10, 0, 237, 50);
getContentPane().add(lblNewLabel);

JLabel label = new JLabel("Enter water usage amount(l): ");
label.setFont(new Font("Arial Narrow", Font.BOLD, 11));
label.setForeground(Color.WHITE);
label.setBounds(10, 49, 237, 50);
getContentPane().add(label);

textField_1 = new JTextField();
textField_1.setColumns(10);
textField_1.setBounds(246, 49, 178, 50);
getContentPane().add(textField_1);

JButton btnSubmit = new JButton("Submit");
btnSubmit.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection cn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\decx\\Desktop\\Db.accdb");
String sql = "insert into db ('ID', 'WaterUsage', 'Bill') + values ('1', '12', '12')";
s = cn.createStatement();
s.executeUpdate(sql);

} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
});
btnSubmit.setFont(new Font("Arial Narrow", Font.BOLD, 11));
btnSubmit.setBounds(272, 131, 141, 35);
getContentPane().add(btnSubmit);

}

public static void main(String[] args) throws Exception {

Memo qMemo = new Memo();
qMemo.setSize(500, 350);
qMemo.setVisible(true);
qMemo.setTitle("Tips & Tricks");
qMemo.setDefaultCloseOperation(EXIT_ON_CLOSE);
qMemo.getContentPane().setLayout(null);

}

public void actionPerformed(ActionEvent e) {

}
}

我需要获取代码以在单击提交按钮时发送数据。这是一个学校项目,我必须允许用户输入用水量和账单(水电费),以便稍后显示。

我之前运行过代码,但出现“意外 token ”或“用户没有权限或未找到对象”等错误。

最佳答案

有一些注意事项:

  1. 你得到这个错误(unexpected token)因为列名和表名不应该在两个引号之间 ''
  2. + 运算符不允许出现在查询的那个位置
  3. 此外,只有字符串可以位于两个引号之间,而不是整数,确保 ID 的类型例如是字符串,否则您必须删除两个引号
  4. 了解 Prepared Statement避免语法错误和防止SQL注入(inject)

看:

String sql="insert into db ('ID', 'WaterUsage', 'Bill') + values ('1', '12', '12')";
//(1)-----------------------^--^--^----------^--^----^ ^ ^ ^
//(2)___________________________________________________| | |
//(3)_____________________________________________________________| |

关于java - 如何使用 UCanAccess 从 Java GUI 将数据输入到 MS Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45616086/

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