java - 将 Swing 中的 JTextArea 存储在 Access 2007 数据库中

标签 java sql database swing jtextarea

我目前正在用 Java 编写一个应用程序,该应用程序预先形成来自/向 Swing GUI 组件的输入/输出,并从本地 Microsoft Access 2007 数据库存储/检索此数据。一切进展顺利,除非我尝试使用来自 JTextArea 的输入更新记录,该输入将存储在文本或备注字段中。我可以很好地接收来自 JTextField 的输入,但我收到“SQLException:UPDATE 语句中的语法错误”。带有 JTextArea。

这是有问题的代码:

/* <in_some_method> */
myJTextArea.setText(someString); // the components can have the exact
myJTextField.setText(someString); // same string and still have problems

saveEdit(myTable, myColumn, myJTextField.getText(), myID); // this works fine
saveEdit(myTable, myColumn, myJTextArea.getText(), myID); // this throws an exception
/* </in_some_method> */

/* the update method */
public void saveEdit(String table, String column, String value, long id) {
    String query = "UPDATE " + table + " ";
    query += "SET " + column + " = '" + value + "', "
    query +=  "UpdatedAt = Now() ";
    query += "WHERE ID = " + id;

    try {
        // conn is a working connection to the database
        Statement s = conn.createStatement();

        // execute the query
        s.executeUpdate(query);

        // close open database handle
        s.close();

    } catch (Exception ex) {
        System.err.println(ex);
    }
}

一些事情:

  • 我认为它不存在于数据库中的字段数据类型;我已经尝试了 Memo 和 Text 两种类型,它们都可以与 JTextField 一起使用,但都不能与 JTextArea 一起使用。

  • 如前所述,异常是“SQLException:UPDATE 语句中的语法错误”。所以我知道我的问题与数据库表的布局无关;请求的表和列存在并且可以访问。

有人有什么想法吗?任何帮助将不胜感激。

最佳答案

我不知道 someString 是什么,但我打赌它包含换行符之类的,所以当设置到 JTextField 中时,它将被“展平”,同时当设置为 JTextArea 时,它不会。因此,在获取时,您将有两个不同的字符串,一个可以正常工作,另一个会导致语法错误。

无论如何,你都应该escape在将字符串保存到数据库之前,您可能会遇到 SQL injection 的风险.这也将确保您的方法对两个组件都能正常工作(尽管由于上述原因,确切的字符串可能仍然不同)。

关于java - 将 Swing 中的 JTextArea 存储在 Access 2007 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11237768/

相关文章:

java - 使用 AlertDialog 中的上下文函数从 MainActivity 获取方法时出现问题

java - Poi 幻灯片格式

java - 在 Spring 中消耗大量 json 有效负载的最佳方法?

php - 限制用户在访问 MySQL 的 PHP 应用程序中检索信息的正确方法是什么?

sql - 在数据库 int 或 char 中保存值的最佳做法是什么?

java - 如何在 HTMLUnit 中检索标签内的原子值

mysql - 如何返回每个组中存在的所有行?

sql - SQL Server 中的条件约束

mysql - 数据库建模 : does this non-identifiable relationship maintain identifiability?

mysql - 防止数据库中重复值的最佳方法是什么