![](/img/trans.png)
[英]How to create an installer package for java application along with database created in mysql
[英]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.