2017-06-27 12 views
1

ここで初めて質問するので、私が何か間違っている場合は私を許してください。postgresqlデータベースへのJava接続

A Mavenのxmlファイル:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>SQL_Database</groupId> 
<artifactId>SQL_Database</artifactId> 
<version>1.0-SNAPSHOT</version> 
<dependencies> 
    <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql --> 
    <dependency> 
     <groupId>org.postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>42.1.1</version> 
    </dependency> 

</dependencies> 


</project> 

3クラス:Connect.java:

import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.SQLException; 
    import java.util.Properties; 

    public class Connect { 

     private Connection conn; 

     public Connect(){ 
     } 

     public void setConnection(String database, String user, String password){ 
      String format = String.format("jdbc:postgresql://localhost/%s", database); 
      Properties props = new Properties(); 
      props.put("user", user); 
      props.put("password", password); 
      try { 
       this.conn = DriverManager.getConnection(format, props); 
       this.conn.setAutoCommit(true); 
      } catch (SQLException e){ 
       System.out.println(e.getMessage()); 
      } 
     } 

     public Connection getConnection(){ 
      return this.conn; 
     } 

     public void closeConnection() { 
      try { 
       this.conn.close(); 
      } catch (SQLException e) { 
       System.out.println(e.getMessage()); 
      } 
     } 
    } 

Sql.java

私はそうのようなJavaでのPostgreSQLへの接続を持っています:

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


    class Sql { 

    private Connection conn; 
    private ResultSet results; 

    public Sql(Connection conn) { 
     this.conn = conn; 
    } 

    public void update(String query) { 
     try { 
      this.conn.prepareStatement(query).executeUpdate(); 
     } catch (SQLException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 

    public void select(String query) { 
     try { 
      this.results = this.conn.prepareStatement(query).executeQuery(); 
      getResults(); 
     } catch (SQLException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 

Main.java:

import java.sql.Connection; 

public class Main { 

public static void main(String args[]){ 
    Connect c = new Connect(); 
    c.setConnection("foo", "foo", "foo"); 
    Connection conn = c.getConnection(); 
    Sql sql = new Sql(conn); 
    String query = <Some SQL statement>; 
    sql.update(query); 
    sql.select(<Some SQL statement>); 
    c.closeConnection(); 
    } 
} 

これは完璧に動作しますが、私はそれらのテーブルから、選択のものをテーブルを作成することができますなど

しかし、私は別のプロジェクトでは、この接続をしたいので、私はそのプロジェクトに接続し、SQLのクラスを再作成Main.javaのステートメントを他のプロジェクトのメインクラスに追加しました。

私はConnect c = new Connect();を実行できますが、それは動作しますが、c.setConnection("foo", "foo", "foo");を実行しようとすると、動作しません。Javaはcオブジェクトなどを認識しません。 sqlと同じことです。

私はなぜそれが1つのプロジェクトで動作するのかわかりませんが、別のプロジェクトでまったく同じことをしても機能しません。

これは動作しません私のプロジェクトのコードです:

public class Main extends Application { 
    Connect c = new Connect(); 
    c.setConnection("foo", "foo", "foo"); 
    Connection conn = c.getConnection(); 
    Sql sql = new Sql(conn); 
    -- Some other code that works perfectly without the above-- 
    } 

PS。コード爆弾は申し訳ありません。

+1

あなたは私たちに動作しないプロジェクトからコードを表示することができますか?エラーメッセージを貼り付けます。 –

+0

私のポストにコードを追加します。エラー:(22、20)java:予期しないエラー:(22、21)java:不正なタイプの開始エラー:(22,39)java:不正な開始タイプエラー:(22、48)java:不正なタイプの開始 – Wouter

+0

あなたは ''の代わりに '

答えて

0

コードがメソッド内にないためです。それはのようなものでなければなりません

: -

public class Main extends Application { 

    public void connect() { // <-- Method declaration 
     Connect c = new Connect(); 
     c.setConnection("foo", "foo", "foo"); 
     Connection conn = c.getConnection(); 
     Sql sql = new Sql(conn); 
     //-- Some other code that works perfectly without the above-- 
    } 

} 
+1

ありがとう!これはうまくいった! – Wouter

関連する問題