2014-02-12 2 views
0

Xpage의 MySQL 데이터베이스에서 값을 가져 오기 위해 Java 클래스를 작성했습니다. 코드는 Xpage에서 java를 사용하여 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

ResultSet에 결과가 포함되어 있습니까? 즉, rs.next()가 true를 반환합니까? SSJS 코드를 try..catch 블록으로 래핑하면 또 다른 오류 메시지가 나타 납니까? –

+0

예. catch 블록 (ssjs)에서 제공 한 명령문을 반환했습니다. – VijayaRagavan

+0

결과 집합 개체에 st.execute() 값을 할당하면이 오류가 발생합니다. 그것은 rs = st.execute (query)이어야합니다; – VijayaRagavan

답변

0

필드 namepublic으로 선언해야한다고 생각합니다.

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

을 그리고 return v.getName()에 SSJS 코드를 변경 :

public class Test { 
    public String name; 

또는 더 나은하는 getter 함수를 만듭니다.

그런데 확장 라이브러리 (JDBCRowSet 및 JDBCQuery)에는 두 가지 데이터 소스가있어 관심을 가질 수 있습니다.

+0

Jdbc 코드 없이는 정상적으로 작동하지만 jdbc 코드에서만 실패합니다. 그것이 신비화 될 것입니다. – VijayaRagavan

관련 문제