【发布时间】:2017-07-31 20:01:39
【问题描述】:
我正在尝试将数字/文本插入表格,但当程序尝试插入文本时,我收到错误net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.2 unexpected token: EX1 required: )
这是我的相关代码:
try (Connection conn = DriverManager.getConnection(
"jdbc:ucanaccess://" + dbPath
+ ";newdatabaseversion=V2010"
)) {
DatabaseMetaData dmd = conn.getMetaData();
try (ResultSet rs = dmd.getTables(null, null, tableName, new String[] { "TABLE" })) {
try (Statement s = conn.createStatement()) {
ResultSet resultSet;
String tableName = "Database";
s.executeUpdate("CREATE TABLE " + tableName +" ( [SUBJID]
INTEGER, [PARAMCD] TEXT, [PARAM] TEXT, [AVAL] DOUBLE)");
String s1="Text Ex1";
String s2="Text Ex2";
int a=3;
double b=2;
resultSet = s.executeQuery("SELECT * FROM " + tableName);
s.executeUpdate("INSERT INTO " + tableName
+ " ( SUBJID, PARAMCD, PARAM, AVAL)"
+ " VALUES ( "+ a+", " + s1 + ", " + s2 +" , " + b +" )");
在我看来,错误是在出现空白时引起的。我尝试将 s1 更改为“TextEx1”,将 s2 更改为“TextEx2”,这给了我net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.2 user lacks privilege or object not found: TEXTEX1 的错误。
提前感谢任何人提供的任何帮助。
【问题讨论】:
-
调用表
Database不是最好的主意。加上Text Ex1,您需要适当的引用或参数绑定(这样会更安全)。 -
正确引用是什么意思?
-
打印
"INSERT INTO " + tableName + " ( SUBJID, PARAMCD, PARAM, AVAL)" + " VALUES ( "+ a+", " + s1 + ", " + s2 +" , " + b +" )" -
这不是我做的吗?
标签: java sql jdbc ucanaccess