String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + dbpath; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立连接
Properties prop = new Properties();
prop.put("charSet", "gb2312");//
//prop.put("charSet", "iso-8859-1");
conn = DriverManager.getConnection(url, prop);qstmt = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);s2 = "select u_id from xiaoxi where u_title='" + "" + "' or u_link='" + "nionsudandarfursunionmmit" + "'";ResultSet result1 = qstmt.executeQuery(s2);java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 字符串的语法错误 在查询表达式 'U_TITLE='' OR U_LINK='NIONSUDANDARFURS' 中。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
select u_id from xiaoxi where u_title='' or u_link='nionsudandarfursunionmmit'
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at sun.jdbc.odbc.JdbcOdbcResultSet.calculateRowCount(JdbcOdbcResultSet.java:6353)
at sun.jdbc.odbc.JdbcOdbcResultSet.initialize(JdbcOdbcResultSet.java:155)
at sun.jdbc.odbc.JdbcOdbcStatement.getResultSet(JdbcOdbcStatement.java:424)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:254)
at desktopapplication1.runthread.run(runthread.java:532)
u_title,u_link数据库中都是字符串
这个很简单的查询怎么就出错的?有大哥能复制帮我试下么,好像问题就在这个字符串'nionsudandarfursunionmmit'
//建立连接
Properties prop = new Properties();
prop.put("charSet", "gb2312");//
//prop.put("charSet", "iso-8859-1");
conn = DriverManager.getConnection(url, prop);qstmt = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);s2 = "select u_id from xiaoxi where u_title='" + "" + "' or u_link='" + "nionsudandarfursunionmmit" + "'";ResultSet result1 = qstmt.executeQuery(s2);java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 字符串的语法错误 在查询表达式 'U_TITLE='' OR U_LINK='NIONSUDANDARFURS' 中。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
select u_id from xiaoxi where u_title='' or u_link='nionsudandarfursunionmmit'
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at sun.jdbc.odbc.JdbcOdbcResultSet.calculateRowCount(JdbcOdbcResultSet.java:6353)
at sun.jdbc.odbc.JdbcOdbcResultSet.initialize(JdbcOdbcResultSet.java:155)
at sun.jdbc.odbc.JdbcOdbcStatement.getResultSet(JdbcOdbcStatement.java:424)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:254)
at desktopapplication1.runthread.run(runthread.java:532)
u_title,u_link数据库中都是字符串
这个很简单的查询怎么就出错的?有大哥能复制帮我试下么,好像问题就在这个字符串'nionsudandarfursunionmmit'
用的是access2000
也不行
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 字符串的语法错误 在查询表达式 'U_TITLE='' OR U_LINK='NIONSUDANDARFURS' 中。
java驱动在对以前的 union 改善的时候 把这个当成关键字了
改用preparestatement 就没问题了