2013-03-15 2 views
0

Я хочу подключиться к mysql db с помощью хоста, имени пользователя, пароля из файла aplikacja.properties. Но у меня проблема с bcs, этот метод возвращает null, и я не знаю почему?Метод вызова в Java

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); 
    } 
} 

Спасибо за помощь.

ответ

0

Вы должны вызвать метод readConnectionParam() так thesse поля инициализируются здесь.

Try:

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

Включить приведенный выше код в try catch, так как метод readConnectionParam() бросает Exception s

3

Я не вижу никакого кода, который вызывает метод readConnectionParam, который является единственной вещью, которая может инициализировать переменные, возвращаемые в ваших методах, возвращающихся null. Назови это.

0

Вы должны сначала инициализировать ВАР вызова метода

readConnectionParam 

внутри главного

0

использование -

baza.readConnectionParam(); 

после

Mysql baza = new Mysql(); 

заявление.

Смежные вопросы