簡體   English   中英

如何更改數據庫連接以為Java應用程序創建安裝程序?

[英]How to change the database connection to create an installer for a java application?

我已經在netbeans中創建了一個與localhost Mysql數據庫連接的Java應用程序。

-----------------------------------連接代碼------------ ------------------------------

public static Connection getConexao()throws SQLException{
        try{
            Class.forName("com.mysql.jdbc.Driver");
            return DriverManager.getConnection("jdbc:mysql://localhost/World","root", "root");
        }catch(ClassNotFoundException e) {
            throw new SQLException(e.getMessage());
        }
    }

我希望我的應用程序已在多台計算機上使用,但是由於該數據庫被視為本地主機,因此我不確定如何更改此設置,以使其不僅在我的計算機上使用。

任何人都可以幫助我或提供一些提示,以便您解決我的問題? 對不起我的英語不好。

我不知道自己的解釋是否很好,但如有疑問,請不要猶豫。

ps:基本上認為質量保證解決方案將是更改鏈接數據庫,但是我不確定,不確定是否可以解決我的問題。 所以我正在尋求幫助。

我帶來的不便表示歉意。
謝謝你們。

問候

您可以使用main方法創建一個類,該類采用用於數據庫連接設置的命令行參數

根據您的數據庫設置將更改,您將能夠連接到任何MySQL

您可以從鍵盤獲取輸入並傳遞這些值以獲取數據庫連接

    package in.sblog.db;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ReadDBSettings {

  /**
   * @param args
   */
  public static void main(String[] args) {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String connectionURL = null;
    String username = null;
    String password = null;

    try {
      System.out.print("Enter your DB connection URL: ");
      connectionURL = br.readLine();
      System.out.print("Enter your DB username: ");
      username = br.readLine();
      System.out.print("Enter your DB password: ");
      password = br.readLine();
      System.out.println("connectonURL:" + connectionURL + ", username:" + username + ", password:" + password);
      try {
        Connection conn = getConexao(connectionURL, username, password);
        //do your code
      } catch (SQLException e) {
        e.printStackTrace();
      }
    } catch (IOException ioe) {
      ioe.printStackTrace();
      System.exit(1);
    }
  }

  public static Connection getConexao(String connectionURL, String username, String password) throws SQLException {
    try {
      Class.forName("com.mysql.jdbc.Driver");
      return DriverManager.getConnection("jdbc:mysql://" + connectionURL, username, password);
    } catch (ClassNotFoundException e) {
      throw new SQLException(e.getMessage());
    }
  }

}

基本上,您需要的是以下各項的動態值:

  • 數據庫主機/名稱
  • 用戶
  • 密碼

您可以更改方法,以便它將這些值用作參數並構建連接字符串:

public static Connection getConnection(String host, String user, String pwd)
{
        String dbHost = "jdbc:mysql://" + host;   //needs checking etc, error handling
        Class.forName("com.mysql.jdbc.Driver");
        return DriverManager.getConnection(dbHost, user, pwd);
}

您從何處獲得此值並不重要。 您可以從配置文件(屬性),命令行中讀取它們,或者制作某種GUI,用戶可以在其中輸入值。

從命令行讀取參數的示例。 啟動程序時,只需在程序名稱后添加三個用空格分隔的值。 例如,如果您的程序位於jar文件中:

java -jar MyDatabaseTest.jar localhost/World root rootPwd

然后在您的主要方法中讀取這些值:

public static void main(String[] args)
{
   //first check length/null of args etc.
   String host = args[0];
   String user = args[1];
   String pwd = args[2];

   Connection con = YourDatabaseClass.getConnection(host, user, pwd);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM