用Java调用方法

时间:2013-03-15 16:39:43

标签: java mysql methods

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

和getHost()

getUsername()

getPassword来()

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 个答案:

答案 0 :(得分:3)

我没有看到任何调用readConnectionParam方法的代码,这是唯一可以初始化返回null的方法中返回的变量的方法。叫它。

答案 1 :(得分:0)

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

readConnectionParam 

在主

答案 2 :(得分:0)

您必须调用readConnectionParam()方法,因为这里会初始化这些字段。

尝试:

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

try catch中包含上述代码,因为方法readConnectionParam()会抛出Exception s

答案 3 :(得分:0)

使用 -

baza.readConnectionParam();

Mysql baza = new Mysql();

语句。