UCanAccess:来自空间的意外标记

UCanAccess: unexpected token from spaces

我正在尝试将 numbers/text 插入 table,但是当程序尝试插入文本时,出现错误
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 +" )");

在我看来,错误是在出现空白 space 时引起的。我尝试将 s1 更改为 "TextEx1" 并将 s2 更改为 "TextEx2",这给了我 net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.2 user lacks privilege or object not found: TEXTEX1.

的错误

提前感谢任何人可以提供的帮助。

您想做这样的事情:

String sql = "INSERT INTO [" + tableName + "] (SUBJID, PARAMCD, PARAM, AVAL) VALUES (?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, a);
ps.setString(2, s1);
ps.setString(3, s2);
ps.setDouble(4, b);
ps.executeUpdate();