簡體   English   中英

由Id XSJS獲取記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM