gpt4 book ai didi

javascript - 通过Id获取记录XSJS

转载 作者:行者123 更新时间:2023-11-29 17:35:51 26 4
gpt4 key购买 nike

我是 xsjs 的新手,我知道要从数据库(HANA db)检索数据,我们需要使用准备语句。我尝试使用它,但我的 .xsjs 文件如何返回空 JSON。有人能帮我吗?分享我的代码。下面是用户表

id | user_name | password | marks
1 | Prasanna | test@123 | 10
2 | sasne | test@123 | 20
3 | Ankush | test@123 | 0
4 | Shubham | test@123 | 30
5 | Anupama | test@123 | 15

现在我想根据请求的id编写get请求来访问数据。我的XSJS代码如下

if ($.request.method === $.net.http.GET) {
var conn = $.db.getConnection();
var id = $.request.parameters.get('id');
var statement = 'SELECT * FROM "USER_TABLE" WHERE ID = ?';
$.response.contentType = "application/json";

try {
var pstmt = conn.prepareStatement(statement);
pstmt.setString(1, id);
var result = pstmt.executeQuery();
$.response.setBody(JSON.stringify(result));

$.response.status = $.net.http.OK;

} catch (ex) {
$.response.setBody(ex.toString());
} finally {
if (conn) {
conn.close();
}
}
}

我们将提供帮助

最佳答案

这应该可行,刚刚检查过:

if ($.request.method === $.net.http.GET) {
const id = $.request.parameters.get('id');
$.response.contentType = "application/json";

const conn = $.hdb.getConnection();
try {
const resultSet = conn.executeQuery('select * from "user_table" where "id" = ?', id);
$.response.setBody(JSON.stringify(resultSet));
$.response.status = $.net.http.OK;
} catch (ex) {
$.response.setBody(ex.toString());
} finally {
if (conn) {
conn.close();
}
}
}

我认为你的问题是 id 没有用双引号 ("),这非常重要。

正如您所看到的,使用hdb连接,处理sql查询变得更容易,甚至更快,所以使用这个而不是db - link to hdb documentation .

此外,使用调试器来调查问题(我听说在 Eclipse 中调试 xsjs 文件存在一些问题,但我在 Intellij IDEA 中没有问题)。是的,我猜你的id是唯一的,因此你可以/应该只得到一行,然后stringify只有resultSet[0]

关于javascript - 通过Id获取记录XSJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50287719/

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