`
hypgr
  • 浏览: 277680 次
社区版块
存档分类
最新评论

java.sql.SQLException: '@P0' 附近有语法错误

阅读更多

SQL语句:

String sql = "select top ? * from bbs_posts where p_fid=? order by p_addtime desc";
        prepStmt 
= conn.prepareStatement(sql);
        prepStmt.setInt(
1, xxx);
        prepStmt.setInt(
2, xx);
        prepStmt.executeQuery()

预编译:
Exception:
java.sql.SQLException: '@P0' 附近有语法错误。
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:
368)
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:
2816)
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:
2254)
    at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:
631)
    at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:
477)
    at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:
777)
    at yixun.wap.db.DBConnection.executeQuery(DBConnection.java:
41)
    at yixun.wap.bbs.dao.ForumDAO.get500WANforum(ForumDAO.java:
282)
    at yixun.wap.bbs.BbsCache.get500WANforumCache(BbsCache.java:
91)
    at yixun.wap.bbs.service.ForumBO.get500WANforum(ForumBO.java:
143)
    at _jsp._page._bbs._space._second__jsp._jspService(_second__jsp.java:
83)

原因:sql不支持为select top ? 预编译,换成动态拼接
String sql = "select top %s * from bbs_posts where p_fid=? order by p_addtime desc";
        sql 
= String.format(sql, num);

分享到:
评论

相关推荐

    服务器出现java.sql.SQLException No suitable driver found for 的.pdf

    ### 服务器出现java.sql.SQLException No suitable driver found for 的解析与解决方案 #### 问题背景 在进行Servlet开发过程中,尤其是在尝试连接数据库时,遇到了一个常见的异常:“java.sql.SQLException: No ...

    oracle+ora-各种常见java.sq

    - `java.sql.SQLException: No suitable driver found for.jdbc:oracle:thin:@localhost:1521:ORCL`: 这意味着Java无法找到适合的Oracle JDBC驱动。确保已添加ojdbc驱动到项目的类路径,并正确配置数据库URL。 2. ...

    ora常用sql.rar

    在Oracle数据库管理中,SQL(Structured Query Language)是不可或缺的工具,用于数据查询、操作、定义和控制。"ora常用sql.rar"这个压缩包显然包含了DBA(Database Administrator,数据库管理员)在日常工作中经常...

    java检查sql语法是否正确

    在Java编程中,检查SQL语法是否正确是一项重要的任务,它能确保我们的数据库操作代码不会因为语法错误而引发异常。为了实现这一目标,开发者通常会利用Java的JDBC(Java Database Connectivity)API或者其他第三方库...

    星环大数据平台_InceptorSQL使用方法.pdf

    星环大数据平台是一个综合的大数据分析处理平台,其中InceptorSQL是其核心组件之一,它是基于Hadoop和Apache Hive技术栈开发的SQL查询引擎,允许用户执行SQL查询以及进行数据处理。 InceptorSQL使用方法的文档主要...

    java中常见的错误.docx

    11. QueryRunner使用错误:`java.sql.SQLException: QueryRunner requires a DataSource to be invoked in this way`提示在调用QueryRunner时没有提供DataSource或Connection,需要确保正确配置。 12. executeQuery...

    oracle 中使用批处理文件,同时执行,多个.sql文件。

    - SQL语法错误:每个.sql文件中的SQL语句应无误,否则可能导致批处理失败。 - 错误处理:在执行过程中,如果某个.sql文件出错,你需要决定是继续执行其他文件还是停止整个批处理。 总的来说,Oracle的批处理能力...

    常见的java异常.pdf

    7. **`java.sql.SQLException`**:处理数据库操作时,如果发生错误,如连接问题、查询语法错误或数据源不可用,就会抛出此异常。确保数据库连接配置正确,SQL语句无误,并捕获并处理异常。 8. **`java.io....

    mysql-connector-java-5.1.40.tar

    在实际项目中,为了提高应用的健壮性和可维护性,推荐使用连接池,如C3P0、HikariCP或Apache DBCP,这些连接池管理组件可以自动管理数据库连接的创建、复用和释放,从而提高系统性能并减少资源消耗。 总的来说,`...

    javaAPI(SQL)帮助文档

    Java API for SQL是Java编程语言中用于访问和处理关系数据库的标准接口。这个强大的工具集使得开发者能够在Java应用程序中执行SQL语句,管理数据库连接,以及处理结果集。本帮助文档将深入探讨Java SQL API的核心...

    java sql

    11. **异常处理**: 在Java中处理SQL操作时,需要捕获并处理`SQLException`,确保程序的健壮性。 12. **批量操作**: JDBC提供批量处理功能,允许一次性执行多条SQL语句,提高效率。 博客中的SQL文件(0.sql到10.sql...

    java异常分析及解决办法

    10. **java.sql.SQLException**: 当与数据库交互时出现错误,例如SQL查询失败或连接问题,会抛出此异常。确保SQL语句语法正确,数据库连接配置无误。 11. **java.lang.NoSuchMethodException**: 当尝试调用一个...

    mysql-connector-java-8.0.21.rar 数据库连接依赖最新版

    当遇到数据库操作失败时,通过捕获和处理`SQLException`,可以获取有关错误的详细信息,有助于诊断和解决问题。 总之,"mysql-connector-java-8.0.21.rar"是一个关键组件,使得Java开发者能够无缝地连接和操作...

    sqljdbc42 jdbc for java

    1. 连接池:使用连接池(如HikariCP或C3P0)管理数据库连接,以提高性能和资源利用率。 2. 数据库连接关闭:操作完成后,务必关闭数据库连接,防止资源泄露。 3. 参数化查询:避免SQL注入攻击,应使用...

    sql+js学习

    System.out.println("执行SQL时发生错误: " + e.getMessage()); while (e.getNextException() != null) { e = e.getNextException(); System.out.println("嵌套异常: " + e.getMessage()); } } ``` 6. **...

    java连接数据库驱动(msbase.jar,mssqlserver.jar,msutil.jar)

    import java.sql.SQLException; ``` 2. 加载驱动并建立连接: ```java Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=...

    sqljdbc4-4.0.jar.rar

    同时,需要注意的是,虽然sqljdbc4-4.0.jar提供了一种便捷的连接方式,但在大型项目中,通常会采用连接池技术,如C3P0、HikariCP或Apache DBCP等,以提高资源利用率并优化性能。 总结,sqljdbc4-4.0.jar是Java开发...

    Hibernate不同数据库的连接及SQL方言.pdf

    在示例错误信息中提到的“Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]'last_insert_id' 不是可以识别的函数名”,这是由于`last_insert_id`函数在SQL Server中并不...

    sqlserver+jar

    这个JAR文件是由微软提供的,它实现了JDBC API,以便Java应用程序能够识别并处理SQL Server的特有语法和功能。 描述中的“在java中用jdbc来连接sql server2000时要用到的jar包”强调了这个JAR文件在Java项目中的...

    SQL2Java.zip

    此外,由于SQL语法的多样性,SQL2Java可能无法处理所有类型的SQL语句,对于不支持的特性,开发者可能需要进行手动调整。 总结来说,SQL2Java是一个强大的工具,通过Python脚本自动化了SQL到Java的转换,减少了...

Global site tag (gtag.js) - Google Analytics