[英]get record by Id XSJS
我是xsjs的新手,我知道要從db(HANA db)檢索數據,我們需要使用prepare語句。 我嘗試使用它,但是無論我的.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鏈接到hdb文檔 。
此外,請使用調試器調查此問題(我聽說在Eclipse中調試xsjs文件存在一些問題,但是在Intellij IDEA中我沒有遇到問題)。 是的,我想您的id
是唯一的,因此您可以/應該僅獲得一行,然后僅對resultSet[0]
進行stringify
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.