Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序]_Java_Ms Access_Jdbc_Jdbc Odbc - Fatal编程技术网

“线程中的异常”;“主要”;java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序]

“线程中的异常”;“主要”;java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序],java,ms-access,jdbc,jdbc-odbc,Java,Ms Access,Jdbc,Jdbc Odbc,当试图通过java代码在ms access表中插入genename时,我得到的错误如下 线程“main”java.sql.SQLException:[Microsoft][ODBC]中出现异常 查询中的Microsoft Access驱动程序]语法错误(缺少运算符) 表达‘酿酒酵母(菌株ATCC 204508/S288c)’。 位于sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964) 位于的sun.jdbc.odbc.Jdbc

当试图通过java代码在ms access表中插入genename时,我得到的错误如下

线程“main”java.sql.SQLException:[Microsoft][ODBC]中出现异常 查询中的Microsoft Access驱动程序]语法错误(缺少运算符) 表达‘酿酒酵母(菌株ATCC 204508/S288c)’。 位于sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964) 位于的sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121) 位于的sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(jdbodbc.java:3117) execute(JdbcOdbcStatement.java:337) 在 executeUpdate(JdbcOdbcStatement.java:287) SequenceAnalyzer.(SequenceAnalyzer.java:50)

我的代码是

try{
    executeUpdate = odbc.state.executeUpdate("INSERT INTO genename (GENE )VALUES ("+result+")");
    odbc.state.close();
}

我该怎么办

看起来您的
结果
字符串包含

酿酒酵母(菌株ATCC 204508/S288c)
因此,当您将原始字符串注入到SQL语句中时,最终将使用无效语法

相反,您应该使用这样的参数化查询

String sql=“插入基因名(基因)值(?”;
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,结果);
ps.executeUpdate();

将查询结果放入局部变量中,并在那里设置断点,以查看是否获得有效的SQL。但在任何情况下,都应该进行参数化查询。