我想通过使用来自文件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);
}
}
感谢您的帮助。
答案 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();
语句。