ここで初めて質問するので、私が何か間違っている場合は私を許してください。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。コード爆弾は申し訳ありません。
あなたは私たちに動作しないプロジェクトからコードを表示することができますか?エラーメッセージを貼り付けます。 –
私のポストにコードを追加します。エラー:(22、20)java:予期しないエラー:(22、21)java:不正なタイプの開始エラー:(22,39)java:不正な開始タイプエラー:(22、48)java:不正なタイプの開始 –
Wouter
あなたは ''の代わりに '