2017-12-15 19 views
0

データベースに接続してクエリを送信して回答を得るプログラムがあります。メインクラスで接続してクエリを実行するとすべてが正常でしたが、3つの異なるクラスを作成しようとするとプログラムが機能しません。どのように私は、クエリから接続関数を呼び出すことができますし、メインからクエリ関数を呼び出すことができますか?他のメソッドから1つのメソッドを呼び出す

public class App { 

public static void connect() throws IOException { 

    Connection c = null; 
    try { 
     Class.forName("org.postgresql.Driver"); 
     c = DriverManager.getConnection(dbName, userName, password); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     System.err.println(e.getClass().getName() + ": " + e.getMessage()); 
     System.exit(0); 
    } 
    System.out.println("Opened database successfully"); 
} 

public static void query() { 

    Connection c = connect(); // call function - error 
    Statement stmt = c.createStatement(); 
    stmt = c.createStatement(); 
    String query = "Select count(distinct country) sum from customers"; 
    ResultSet rs = stmt.executeQuery(query); 
    query = "SELECT * from country"; 
    rs = stmt.executeQuery(query); 
    while (rs.next()) { 
     String country = rs.getString("country"); 
     String netamount = rs.getString("netamount"); 
     System.out.println(country + " " + netamount); 
     System.out.println(); 
    } 
    rs.close(); 
    stmt.close(); 
    c.close(); 
} 

public static void main(String[] args) { 

    query(); // call function 
} 

答えて

0

だからあなたの関数は、この

public static Connection connect() throws IOException { 
BufferedReader br = new BufferedReader(new FileReader("login.txt")); 

dbName = br.readLine(); 
userName = br.readLine(); 
password = br.readLine(); 

Connection c = null; 
try { 
    Class.forName("org.postgresql.Driver"); 
    c = DriverManager.getConnection(dbName, userName, password); 
} catch (Exception e) { 
    e.printStackTrace(); 
    System.err.println(e.getClass().getName() + ": " + e.getMessage()); 
    System.exit(0); 
} 
System.out.println("Opened database successfully"); 
return c; 

}

のようにそれを再書き込み接続

てみてくださいを返す必要があり、特に予想通りその後、あなたのクエリ機能がラインに動作します

Connection c = connect(); 
+0

があなたのために働いた場合は、私にフィードバックをお寄せください...あなたはまだチャレンジを経験しているなら、私は助けることができます – vofili

関連する問題