【问题标题】:networking javaSE applications网络 javaSE 应用程序
【发布时间】:2015-09-19 11:40:34
【问题描述】:

这是我的 JavaSE 应用程序的数据库类。

public class db {
    static Connection c;
    public static Connection Get_Connection() throws ClassNotFoundException,SQLException {
        if (c == null) {
            String ip = "";
            String port = "";
            String username = "";
            String password = "";
            try {
                BufferedReader br = new BufferedReader(new FileReader(System.getProperty("user.home") + "/ConnectionSettings.txt"));   
                ip = br.readLine();
                port = br.readLine();
                username = br.readLine();
                password = br.readLine();
                br.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            Class.forName("com.mysql.jdbc.Driver");
            c = DriverManager.getConnection("jdbc:mysql://" + ip + ":"+port + "/mydb", username, password);
        }
        return c;
    }

我知道这不是一个好习惯。我正在从C:/.. 中保存的文本文件中获取 IP 地址、数据库密码和端口。

我的问题是,如果我想将项目联网,可以在这个 db 类中提供服务器机器的 IP 地址吗?

如果不告诉我为什么,以及如何将 JavaSE 应用程序联网?

您可以在链接中提供答案。

我应该使用哪些框架来将应用程序联网?

hibernate 可以解决这个问题吗?

【问题讨论】:

  • 这里的“网络”是什么意思?是与其他开发者协调项目代码吗?
  • 不,我的意思是数据库应该在另一台电脑上
  • 提供配置的最佳位置是 app/web 容器。您可以配置数据源(或数据库)并使用其 JNDI 从您的代码中引用它。检查why-use-jndi-for-data-sourcesLooking Up the Data Source Using JNDI To Obtain a Connectionjndi-resources-howto
  • 通常最好使用主机名,甚至是服务器的别名。这样做的原因是无需更改代码即可更改机器。在大公司中,通常很难用新服务器替换旧服务器并保留其 IP。主机名和别名可以轻松地从旧服务器移动到潜在的新服务器

标签: java database


【解决方案1】:

如果您所说的只是与现有数据库服务器建立网络连接,那么这段代码就足够了。在实际应用程序中,您可能希望使用更灵活的方法来存储连接参数,但归根结底就是这样。

JPA (Hibernate) 和 Spring Data 等持久性框架位于此连接之上,并在 SQL 和 Java 对象之间进行转换。是否使用其中一个取决于您在应用程序中尝试执行的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-14
    • 2011-02-01
    • 2016-01-24
    • 2020-09-06
    • 2016-03-07
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多