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

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. ...

    java.sql.SQLException(解决方案).md

    在Java开发中,处理数据库操作时经常会遇到`java.sql.SQLException`异常,此异常是数据库操作失败时的通用错误提示。以下是常见的解决方案和代码示例,以帮助开发者解决和避免此类异常。 首先,数据库连接问题通常...

    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....

    javaAPI(SQL)帮助文档

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

    java.sql.SQLSyntaxErrorException(解决方案).md

    Java中SQLSyntaxErrorException是一种常见的异常类型,通常在执行数据库操作时发生,尤其是当SQL查询语句存在语法错误时。要解决这个问题,首先要确认SQL语句的语法正确性。这意味着需要检查SQL语句中的括号是否匹配...

    java sql

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

    SQLException如何解决.md

    - **异常分类处理**:尽量根据不同的异常类型做不同的处理,比如针对SQL语法错误和网络连接失败应该有不同的处理策略。 #### 7. 注意事项 - **避免硬编码**:不要将数据库的连接信息硬编码在代码中,这既不安全也不...

    java.sql.BatchUpdateException(解决方案).md

    SQL语句中如果存在语法错误或逻辑错误,就会导致无法正确执行更新操作,从而引发BatchUpdateException。正确的SQL语句是保证数据库操作成功的关键。同时,还需要检查数据库连接是否稳定,不稳定或错误的数据库连接...

    java异常分析及解决办法

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

    java.JDBC.md

    在实际开发中,可能会遇到一些常见的问题,例如驱动程序未正确加载、数据库连接信息错误或SQL语法错误等。解决这些问题通常需要仔细检查驱动程序版本、检查数据库URL格式和参数、以及验证SQL语句的正确性。此外,...

    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. **...

Global site tag (gtag.js) - Google Analytics