2012-09-07 26 views
1

我並不熟悉Java和JavaScript。如何將MySQL查詢的ResultSet轉換爲整數?

我正在做的是使用一個java插件,它允許我將javaScript添加到文本文件中,以便在某些事件上進行調用。文本文件中的JS也可以調用Java插件本身的內容,使其可以訪問我沒有文檔所用的API。

我需要做的是我的JS是查詢MySQL數據庫並從表中獲取用戶ID。這裏是我的代碼:

var host = "localhost" 
var port = "3306" 
var database = "dev" 
var user = "root" 
var pass = "" 
// var username = name of the user used to vote. Part of internal API 

function connect(){ 
    var url = "jdbc:mysql://" + host + ":" + port + "/" + database 
    return java.sql.DriverManager.getConnection(url, user, pass) 
} 
function getUserId(){ 
    var connection = connect() 
    var statement = connection.createStatement() 
    var userId = statement.executeQuery("SELECT user_id FROM xf_user_field_value WHERE field_value = '" + username + "'") 
    return userId 
} 

返回的是一個resultSet。我需要它返回的是字段的整數值..而不是結果集。

如何從JavaScript中的ResultSet獲取整數值?

+1

它可能返回一個數組的一個元素。 –

回答

0

我不熟悉這個Java/Javascript插件,但它似乎遵循標準的Java方法。它應該是:

var statement = connection.createStatement() 
statement.executeQuery("SELECT user_id FROM xf_user_field_value WHERE field_value = '" + username + "'") 
var rs = s.getResultSet(); 

if (rs.next()) { 
    var userId = rs.getInt("user_id"); 
} 

編輯

在你的情況下,它似乎返回ResultSet了,所以也許:

var rs = statement.executeQuery("SELECT user_id FROM xf_user_field_value WHERE field_value = '" + username + "'") 
+0

使用該代碼,它不明白[code] getInt [/ code]是什麼。 – user1655644

+0

我的觀點是'executeQuery'返回一個'ResultSet'。你必須做一些事情找到正確的變量。它可以是一個對象,一個數組,我不知道這個特定的API。你可以嘗試傾銷變量,看看裏面有什麼?也許它只是'rs ['user_id']',或'rs ['0']'。你有關於你正在使用的API的文檔嗎? – Tchoupi