“线程中的异常”;“主要”;java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序]
当试图通过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) 我的代码是“线程中的异常”;“主要”;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
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。但在任何情况下,都应该进行参数化查询。