gpt4 book ai didi

JavaPreparedStatement未设置值

转载 作者:行者123 更新时间:2023-11-30 05:44:17 25 4
gpt4 key购买 nike

我对 Java 完全陌生,我尝试设置一个小测试来从 MSSQL 数据库读取一些数据。我必须向查询传递一些值,但这不能正常工作,如果我手动设置它们,它可以工作,在我的情况下,使用PreparedStatement和.setLong-Method它不起作用。

public class db_testClass {
public static void main(String[] args) throws ClassNotFoundException {

long firstId = 0;
long lastId = 201801001010010403L;
PreparedStatement statement;
int counter = 1;

String SQL = "IF OBJECT_ID('tempdb..#tmpDaten') IS NOT NULL
" DROP TABLE #tmpDaten;
" SELECT DISTINCT
" RIGHT(10000000 + ISNULL(r.xxx, 0), 7) AS Wert
" INTO #tmpDaten
" FROM dbo.xxx
" WHERE r.xxxx BETWEEN firstId = ? AND lastId = ?;

" SELECT DISTINCT
" 'xxxx' AS Art ,
" t.xxx
" FROM #tmpDaten
" LEFT JOIN xxxxxxx a ON a.xxxx = t.xxxx
" AND a.ART = 'xxxx' " +
" WHERE a.xxxx IS NULL;";


String connectionUrl = "jdbc:sqlserver://xxxxxx:1433;databaseName=xxxxxx;integratedSecurity=true;";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

try {

Connection con = DriverManager.getConnection(connectionUrl);
statement = con.prepareStatement(SQL);
statement.setLong(1, firstId);
statement.setLong(2, lastId);
System.out.println(statement);
ResultSet rs = statement.executeQuery();


}
catch (SQLException e) {
e.printStackTrace();
}
}
}

错误表明“=”附近的语法错误......

有人有什么想法吗?

谢谢

丹尼尔

最佳答案

您对 BETWEEN 运算符的使用很可疑,可能只是彻底的语法违规。它应该是这样的:

something BETWEEN low-value AND high-value

测试某物是否位于低值高值之间。

关于JavaPreparedStatement未设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55119630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com