0

我想通过使用文件 aplikacja.properties 中的主机、用户名、密码来连接 mysql db。但是我有问题 bcs 那些方法返回 null 我不知道为什么?

获取主机()

获取用户名()

获取密码()

获取数据库()

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

利用 -

baza.readConnectionParam();

Mysql baza = new Mysql();

陈述。

于 2013-03-15T16:45:42.237 回答
0

你应该首先初始化你的变量调用方法

readConnectionParam 

主内

于 2013-03-15T16:43:27.143 回答
0

您必须调用readConnectionParam()Method,因为这些字段已在此处初始化。

尝试:

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

将上面的代码包含在 a 中,try catch因为该方法readConnectionParam()会抛出Exceptions

于 2013-03-15T16:44:26.893 回答