java - 如何使用 Java 属性文件?

标签 java mysql jdbc properties

我需要在Java中使用.properties文件来存储数据库信息。

这是我的数据库连接器类。它给出了 NullPointerException。我的代码有什么问题?

请注意,我还没有分配那些属性文件值。数据库连接值仍然是硬编码的。

import java.io.IOException;
import java.io.InputStream;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;


public final class Database {

    public Connection connection;
    private Statement statement;
    private Properties property;
    public static Database database;

    private Database() {

        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "edus";
        String driver = "com.mysql.jdbc.Driver";
        String userName = "root";
        String password = "";
        try {
            InputStream is = Database.class.getClassLoader().getResourceAsStream(
                "config.properties");
            property.load(is);
            System.out.println(property.getProperty("db_user"));
            System.out.println(property.getProperty("db_password"));
            System.out.println(property.getProperty("db_name"));

            Class.forName(driver).newInstance();
            this.connection = (Connection) DriverManager.getConnection(url + dbName,
                    userName, password);
        }catch (IOException ex) {
            Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException e) {
            System.out.println("JDBC driver is missing");
        } catch (InstantiationException | IllegalAccessException | SQLException e) {
            e.printStackTrace();
        } 
    }

    public static synchronized Database getDatabaseConnection() {
        if (database == null) {
            database = new Database();
        }
        return database;

    }


}

最佳答案

config.properties 不在类路径下。它应该在类文件夹下。

你也可以试试

Database.class.getClassLoader().getResourceAsStream(
                "com/lk/apiit/eduservice/config.properties");

正如 Roman C 指出的,您还需要先初始化 Properties 对象

Properties property = new Properties();

关于java - 如何使用 Java 属性文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20314938/

相关文章:

java - 如果我通过 testng.xml 运行测试,则会出现 NullPointerException,但它一次可以正常工作

java - 将数据库连接到另一台计算机

java - 在 Spring jdbc 中使用 jdbctemplate 返回 boolean 值

java - 向 JScrollPane 添加新行

java - 如何知道在 FileVisitor 中访问最后一个文件的时间?

mysql - 如何在少于 N 个查询中更新 N 个帖子的 "my_field"?

pdf - 如何在使用 PHP 输出 HTML 时在 HTML 中设置函数

java - 替换 .sql 脚本中的变量并使用 Java JDBC 运行它们

Java快速排序,从用户输入文件读取到任何数组(待排序)

php - 如何检测选择查询中的日期是否更改