【发布时间】:2014-11-12 09:22:46
【问题描述】:
我正在从事基于摇摆的项目并使用准备好的语句,但它给出了超出范围之类的异常,并且当我使用参数并且不输入“?”时但很简单?然后显示异常,如“ jdbc语法错误检查'?,?'附近的手册在第一行“我很困惑发生了什么。检查我的代码出了什么问题?
private void AddActionPerformed(java.awt.event.ActionEvent evt) {
if (((JTextField) chose.getDateEditor().getUiComponent()).getText() == null) {
String sql = "INSERT INTO expance1 ( Breakfast,Date) VALUES (?,?)";
} else {
String sql = "INSERT INTO expance1 ( Breakfast,Date) VALUES (?,?)";
try {
pst = conn.prepareStatement(sql);
pst.setString(1, breakfast.getText());
pst.setString(2, ((JTextField) chose.getDateEditor().getUiComponent()).getText());
pst.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "insert sucessfully");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
} finally {
try {
rs.close();
pst.close();
} catch (Exception e) {
}
}
}
}
【问题讨论】:
-
请添加该例外。我的意思是整个堆栈跟踪 ofc。
-
jdbc4.mysqlSyntaxErroException:您的 SQL 语法有错误。请检查与您的 MySql 服务器版本相对应的手册,以便在第 1 行的“?,?)”附近使用正确的语法
-
在我们为您提供帮助之前,您应该检查以下建议: 1. 名称是否正确(列名和表名)? 2. 列类型是否正确(都必须是 VARCHAR 或类似类型)? 3. .setString() 语句中你们两个方法的返回字符串是你要保存的吗?
-
No Breakfast 是 int 数据类型而 date 是 VARCHAR 而列名和表名是正确的。
-
现在我将 int 更改为 VARCHAR 但仍然是相同的异常。