当前位置: 首页 > 知识库问答 >
问题:

IDE中与postgresql的通信

房育
2023-03-14

我正在尝试编写一个简单的代码来与数据库通信。但它给出了一个错误。应用程序。属性文件包含指向本地主机、用户名和密码的链接。三行。图像异常文本

主要的Java语言

    public static void main(String[] args) throws SQLException {
        Class<Driver> driverClass = Driver.class;
        try (var connection = ConnectionManager.open()) {
            System.out.println(connection.getTransactionIsolation());
        }
    }
}

ConnectionManager.java

public final class ConnectionManager {

    private static final String PASSWORD_KEY = "db.password";
    private static final String USERNAME_KEY = "db.username";
    private static final String URL_KEY = "db.url";

    static {
        loadDriver();
    }
    private ConnectionManager() {
    }
    public static Connection open() {
        try {
            return DriverManager.getConnection(
                    PropertiesUtil.get(URL_KEY),
                    PropertiesUtil.get(USERNAME_KEY),
                    PropertiesUtil.get(PASSWORD_KEY)
            );
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
    private static void loadDriver() {
        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
}

物业Util.java

public final class PropertiesUtil {
    private static final Properties PROPERTIES = new Properties();
    static {
        loadProperties();
    }
    private PropertiesUtil() {
    }
    public static String get(String key) {
        return PROPERTIES.getProperty(key);
    }
    private static void loadProperties() {
        try (var inputStream = PropertiesUtil.class.getClassLoader().getResourceAsStream("application.properties")) {
            PROPERTIES.load(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

项目

pgAdmin4

共有1个答案

越运锋
2023-03-14

了解如何理解错误。错误清楚地表明PROPERTIES. load(inputStream)行中的inputStreamnull。这是因为:

PropertiesUtil.class.getClassLoader().getResourceAsStream("application.properties")

正在尝试加载不存在的资源。我认为您在这里误用了gRAS:

  • 正确的语法是PropertiesUtil。班getResourceAsStream(“/应用程序.属性”)

没有非黑客/简单的方法可以找到“我的jar所在的位置”,因此您可能不想这样做。一个简单的解决方案是从用户的主目录加载:

try (var in = Files.newInputStream(Paths.get(System.getProperty("user.home"), "application.properties"))) {
   PROPERTIES.load(in);
}
 类似资料:
  • 我们需要能够共享查看和编辑的一个Java编码项目,在IntelliJ启动。 我们需要能够从允许某人仅查看一个文件开始,并最终允许他们查看和编辑其他部分。 Intellij似乎并不直接支持这个场景,所以我们测试了在这两个工具中实现这个功能。 Visual Studio Community Edition IDE表示支持版本比较页上的协作,但似乎不支持Java vs_community__109567

  • 我想使用RazorSQL连接到我的数据库,该数据库正在远程服务器上运行。我使用以下命令在本地主机上创建SSH隧道: 我通过RazorSQL的GUI配置连接,将本地主机指定为主机,将1111指定为端口。当我单击“Connect”(连接)时,出现以下错误消息: 其中是远程服务器的IP地址。 此外,我不允许更改我的pg_hba的内容。conf文件。这就是目前的情况: 是否可以使用我当前的设置,在不修改服

  • 我是测试自动化的新手。当我用目标通过Firepath定位元素时: Firefox创建该元素并验证文本。但是,当我试图用Visual Studio 2012和Selenium Web驱动程序定位该元素时,我总是出现错误:“无法定位元素:{”method“:”XPath“,”Selector“:”//td[contains(@id,'CatProdTD_4723290')]/div/div[2]/h2

  • IDE安装方法,以及与git,maven整合的配置方法 由于我们公司主要采用Java 语言的架构,所以目前公司统一采用 IntelliJ IDEA(以下简称IDEA) 作为日常开发的IDE,所以以下内容叙述了如何安装IDEA 以及安装完成之后,如何通过git或maven 管理工程的方法。

  • 我在我的脚本中有以下语句:我存储javascript{window.document.getElementById('demo'). innerHTML}文本 但这总是会出错 [info]执行:|store|javascript{window.document.getElementById('demo'). innerHTML}|text|[error]意外异常:TypeError:window.

  • 问题内容: 这个问题的标题不准确,但我不知道如何总结。如果可以的话,请随时重新编写! 这是两个表的摘录: 桌子 桌子 我需要合并这些表以获得此输出: 我找不到正确的查询。我需要下面类似的内容(我知道它不能完成工作),但是如何将所有代码和年份合并到一个表中,因为代码和年份在两个表中都没有重复… 以下是用于快速创建上述表的SQL脚本: 问题答案: 宇很可能是在寻找对