缺少在Xpage中使用java从mysql获取值的东西

时间:2014-02-12 11:57:12

标签: xpages xpages-ssjs

我写了一个java类来从Xpage中的Mysql数据库中获取值。代码是,

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;

即使我也将这两个方法放在构造函数中。但是不起作用。

我在哪里错过?

1 个答案:

答案 0 :(得分:0)

我认为您必须将您的字段name声明为public

public class Test {
   public String name;

或者更好,创建一个getter函数:

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

然后将您的SSJS代码更改为return v.getName()

顺便说一句,扩展库(JDBCRowSet和JDBCQuery)中有两个数据源,您可能会感兴趣。