0

aplikacja.propertiesファイルのホスト、ユーザー名、パスワードを使用してmysqldbに接続したい。しかし、これらのメソッドがnullを返すという問題があり、その理由がわかりません。

getHost()

getUsername()

パスワードを取得()

getDb()

package aplikacja.mysql;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class Mysql {

    private String host;
    private String username;
    private String password;
    private String db;

    public void readConnectionParam() throws FileNotFoundException, IOException {
        Properties mysqlAplikacjaProperties = new Properties();
        FileInputStream mysqlPlik = new FileInputStream("aplikacja.properties");
        mysqlAplikacjaProperties.load(mysqlPlik);
        host = mysqlAplikacjaProperties.getProperty("jdbc.host");
        username = mysqlAplikacjaProperties.getProperty("jdbc.username");
        password = mysqlAplikacjaProperties.getProperty("jdbc.password");
        db = mysqlAplikacjaProperties.getProperty("jdbc.db");
    }

    public String getHost() {
        return host;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public String getDb() {
        return db;
    }

    public static void main(String[] args) throws SQLException {

        Mysql baza = new Mysql();
        System.out.println(baza.getUsername());

        Connection polaczenie = null;
        String driver = "com.mysql.jdbc.Driver";
        try {
            Class.forName(driver).newInstance();
            polaczenie = DriverManager.getConnection(
                    "jdbc:mysql://" + baza.getHost() + "/" + baza.getDb(),
                    baza.getUsername(), baza.getPassword());
        } catch (Exception e) {
            e.printStackTrace();
        }
        Statement statement = polaczenie.createStatement();
        String command = "INSERT INTO users (id, name, surname) VALUES (2, 'Tom', 'Suszek')";
        statement.executeUpdate(command);
    }
}

手伝ってくれてありがとう。

4

4 に答える 4

3

メソッドを呼び出すコードはありませんreadConnectionParam。これは、を返すメソッドで返される変数を初期化できる唯一のものですnull。あれを呼べ。

于 2013-03-15T16:41:58.323 に答える
0

最初に、メソッドを呼び出して変数を初期化する必要があります

readConnectionParam 

メインの内側

于 2013-03-15T16:43:27.143 に答える
0

readConnectionParam()これらのフィールドはここで初期化されるため、Methodを呼び出す必要があります。

試す:

Mysql baza = new Mysql();
baza.readConnectionParam();
System.out.println(baza.getUsername());

try catchメソッドがsreadConnectionParam()をスローするので、上記のコードをに含めますException

于 2013-03-15T16:44:26.893 に答える
0

使用する -

baza.readConnectionParam();

Mysql baza = new Mysql();

声明。

于 2013-03-15T16:45:42.237 に答える