我在netbeans中创建了一个java应用程序,我打算为该项目创建一个安装程序。
为此,我创建了一个应用程序的jar文件,但我正在使用mysql数据库localhost。
如何使用Mysql localhost生成Jar文件。
有人可以帮我吗?
谢谢和问候
-----------------------------编辑----------------- ----------------------
也许不是表达自己的最佳方式,我的意思是数据库是在本地创建的(localhost)。
应用程序与数据库的连接是这样完成的:
Class.forName("com.mysql.jdbc.Driver");
return driverManager.getConnection("jdbc:mysql://localhost/database","root", "root");
我想创建一个我的应用程序的jar文件,该文件在本地创建了一个数据库。
答案 0 :(得分:1)
我将解释一些事情:
您无需将Connect URL硬编码到代码中。这就是您要求将数据库创建为localhost的原因。我建议你不要在代码中硬编码Connect URL。而是将其写入可编辑文件中,或者是属性文件,甚至是文本文件。让应用程序读取可编辑文件并将参数传递给代码。
在本地计算机上运行的应用程序,数据库将使用Localhost进行连接。但是从另一台机器远程运行的相同应用程序,无论是在Internet还是本地访问网络中都不会以这种方式连接。这就是为什么我坚持不对连接字符串进行硬编码。
包含主机的数据库名称,用户和密码将随时间而变化,具体取决于运行应用程序的环境。因此,如果环境发生变化且变量不相同,则应用程序将不会连接数据库。
建议:
用户属性文件:
db.host=192.168.1.23
db.user=root
db.password=root
db.dbname=database
将文件加载为属性文件:
Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream("config.properties");
// load a properties file
prop.load(input);
// get the property value and print it out
System.out.println(prop.getProperty("db.host"));
System.out.println(prop.getProperty("db.user"));
System.out.println(prop.getProperty("db.password"));
System.out.println(prop.getProperty("db.dbname"));
//PASS YOUR CONNECT STRING
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://" + prop.getProperty("db.host") + "/" + prop.getProperty("db.dbname"), prop.getProperty("db.user"), prop.getProperty("db.password"));
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
通过这种方式,您将永远不必担心运行应用程序的数据库,因为您只需要编辑config.properties
,应用程序将完成剩下的工作。
我希望我能就你如何处理你的情况给出答案或更好的其他想法。