2014-02-12 61 views
0

我編寫了一個java類來從Xpage中的Mysql數據庫獲取值。該代碼是,在X頁面中使用java缺少某些內容以獲取值的值

package com.vijay; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class Test { 

    String name; 
    String caty; 
    float price; 
    private Connection con; 
    private Statement st; 
    private ResultSet rs; 

    public String test(){ 
     return "This is a class with just a single method"; 
    } 

    public Test(){ 
    } 

    public void db(){ 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      con=DriverManager.getConnection("jdbc:mysql://localhost:3306/vijay","root",""); 
      st=con.createStatement(); 
      st.executeQuery("select * from prodet;"); 
     } catch (ClassNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     this.getMethod(); 
    } 

    public void getMethod(){ 
      try { 
       while(rs.next()){ 
        name=rs.getString("name"); 
        price=rs.getFloat("price"); 
        caty = rs.getString("caty");     
       } 
       con.close(); 
       st.close(); 
      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    } 

我把一個標籤頁面和計算其價值與SSJS

var v = new com.vijay.Test(); 
v.db(); 
v.getMethod(); 
return v.name; 

即使我把在構造這兩個方法了。但不起作用。

我在哪裏錯過?

+0

您的ResultSet是否包含任何結果?也就是說,你的rs.next()是否會返回true?另一件事,如果你把你的SSJS代碼包裝到try..catch塊中,你會得到任何錯誤消息嗎? –

+0

Ya它返回了我在catch塊(在ssjs中)給出的語句。 – VijayaRagavan

+0

我沒有想到這個朋友:將值st.execute()賦值給結果集對象。它應該是rs = st.execute(查詢); – VijayaRagavan

回答

0

我想你必須聲明你的字段namepublic

public class Test { 
    public String name; 

或者更好,創建一個getter函數:

public class Test { 
    private String name; 
    public String getName() { 
    return name; 
    } 

,然後改變你的SSJS代碼return v.getName()

順便說一句,在擴展庫(JDBCRowSet和JDBCQuery)中有兩個數據源可能是你感興趣的。

+0

沒有Jdbc代碼就可以正常工作,但只有在使用jdbc代碼時纔會失敗。這是一個被揭穿的人。 – VijayaRagavan

相關問題