我写了一个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;
即使我也将这两个方法放在构造函数中。但是不起作用。
我在哪里错过?
答案 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)中有两个数据源,您可能会感兴趣。