gpt4 book ai didi

java - Java 中的 MySQL 准备语句不返回值

转载 作者:行者123 更新时间:2023-11-29 12:48:26 24 4
gpt4 key购买 nike

我有一个 Web 服务方法,可以针对 MySQL 数据库执行准备好的语句。当我在 MySQL 中运行此语句时,我得到一个返回值:

SELECT first_name
FROM lytthouse_airlines.passenger
WHERE passenger_id = 1

;

但是当我在 java 类中运行这个准备好的语句时,它不起作用:

PreparedStatement getName = connection.prepareStatement(
"SELECT first_name " +
" FROM lytthouse_airlines.passenger " +
" WHERE passenger_id = ? "
);

getName.setInt(1, passengerId);
rs = getName.executeQuery();
returnValue = "After executing query";

if (rs.next())
{
returnValue = "inside rs.next";
returnValue = rs.getString("first_name");
}

当我测试这个时,我在 returnValue 中得到的内容包含“执行查询后”;这意味着没有返回 ResultSet (rs),因此不会进入 if (rs.next()) 逻辑。

有人知道出了什么问题吗?

新内容

在郭的回答之后,我稍微改变了代码,这样我就可以看到passengerId的值。当我运行 Web 服务测试时,我得到了这个非常有趣的结果。

Method parameter(s)

Type Value
int 1
Method returned

java.lang.String : "After executing query, with a passengerId of 0"

我已经仔细检查过,并且在方法中的任何地方都不会在到达他们查询之前更改 PassengerId 的值。

另一条新评论

我认为这个问题与准备好的语句无关,它似乎与方法本身有关。我将方法的开头更改为如下所示

@WebMethod(operationName = "getPassengerName")
public String getPassengerName(@WebParam(name = "passengerId ") int passengerId)
{
//MySQL elements
Connection connection;
ResultSet rs = null;

String returnValue = "start method with passengerId having a value of: " + passengerId;

当我运行测试时,我得到这个:

getPassengerName Method invocation


Method parameter(s)

Type Value
int 1
Method returned

java.lang.String : "start method with passengerId having a value of: 0"

我认为这需要一个新问题。我现在提出一个新问题。再次感谢所有查看此内容并提供反馈的人。我确实很感激。

最佳答案

我在本地主机上测试了结果,结果是正确的。所以我认为您没有 passenger_id = 1 的记录。

关于java - Java 中的 MySQL 准备语句不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110419/

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