java - 如何外部化 SQL Connection 类中的字符串

标签 java sqlite jdbc

我是 Java 编程新手。我有一个连接到我的数据库的 SQL 连接类。

我的导师审查了我的代码,他要求我“使用属性文件外部化字符串”。我不确定他的意思是什么以及如何去做。

我在网上对此进行了研究,发现了有关 Eclipse 向导和国际化的文章。这让我更加困惑。我不确定我是否应该遵循它。

我的 SQL Connection 类如下所示。

public class SQLConnection {
    Connection conn = null;
    public static Connection dbConnector() {
        try {
            Class.forName("org.sqlite.JDBC");
            Connection conn = DriverManager.getConnection("jdbc:sqlite:xxxdbnamexxx.db");

            return conn;
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
            return null;
        }
    }
}

我希望连接类能够像通常在字符串外部化后那样返回连接。

如果有帮助的话我会使用 Eclipse IDE。

最佳答案

你的导师意味着你的应用程序应该从属性文件(或类似文件)中获取字符串“jdbc:sqlite:xxxdbnamexxx.db”和可能的“org.sqlite.JDBC”,而不是将它们硬连接到你的代码中。

这将允许应用程序的用户连接到不同的数据库,而无需修改源代码。他们所需要做的就是修改包含配置属性的属性文件。

现在到底什么需要外部化还存在争议。需要考虑的一件事是,您的代码可能是特定于 SQLite 的,因为数据库始终是 SQLite,或者因为您依赖于特定于 SQLite 的 SQL 或行为。因此不清楚驱动程序类名("org.sqlite.JDBC")是否应该是一个参数。

有很多可能的方法来进行外部化,但简单的方法是使用 java.util.Properties 对象及其加载和保存方法;请参阅javadocs了解详情。

<小时/>

这与国际化无关,国际化中应用程序根据应用程序运行的区域设置从“资源包”获取用户消息。

关于java - 如何外部化 SQL Connection 类中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56911779/

相关文章:

java - 在 Sqlite for Android 外部 Activity 上下文中保存只读数据

java - 从多项目 Maven 配置生成 WAR 文件

java - 从 PHP 运行 Java 文件

android - 无法从游标适配器获取数据

java - 什么(com.microsoft.sqlserver.jdbc.SQLServerException :The index 0 is out of range )exception means

java - 如何处理大型结果集中的数据而不将它们全部加载到内存中?

java - 使用 Oracle JDBC 驱动程序 12c 的 Tomcat 7 上的内存泄漏 - oracle.jdbc.driver 线程无法停止

java - 为用户创建一个在多次重启后保持不变的唯一编号的最佳方法是什么

java - 表名中的特殊字符 hibernate 给出错误

Android 参数化 sql 查询不起作用