尝试通过java代码在ms访问表中插入genename时,我收到错误
线程中的异常" main" java.sql.SQLException:[Microsoft] [ODBC Microsoft Access Driver]查询中的语法错误(缺少运算符) 表达' Saccharomyces cerevisiae(菌株ATCC 204508 / S288c)'。 at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)at at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)at at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3117)at at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337) 在 sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:287) 在sequence.SequenceAnalyser。(SequenceAnalyser.java:50)
我的代码是
try{
executeUpdate = odbc.state.executeUpdate("INSERT INTO genename (GENE )VALUES ("+result+")");
odbc.state.close();
}
我该怎么办?
答案 0 :(得分:0)
看起来您的result
字符串包含
Saccharomyces cerevisiae (strain ATCC 204508 / S288c)
所以当你将原始字符串注入 SQL 语句时,最终会出现无效的语法。
相反,您应该使用参数化查询,就像这样
String sql = "INSERT INTO genename (GENE) VALUES (?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, result);
ps.executeUpdate();