我有一个简单的Java程序,该程序使用JDBC驱动程序建立与MySQL的连接。连接属性本身在代码中进行了硬编码。看起来像这样:
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager
.getConnection("jdbc:mysql://126.32.3.11/test?"
+ "user=root&password=root");
这里的问题是,如果我为程序创建了一个可执行的jar文件,每次我想更改连接(例如与某人的其他连接),那么我都必须在代码本身内部进行更改,并创建一个更新的jar文件。这很麻烦。
有没有一种方法可以在配置文件中设置连接,以便每次我想更改连接详细信息时,都可以通过某种配置对其进行更改?
赞赏任何建议
答案 0 :(得分:1)
您可以使用which is the best way to externalize a database configuration on a desktop app?帖子中给出的Class.getResourceAsStream ("resource.properties");
以下是示例
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Post11 {
private static final String filename = "application.properties";
public static void main( String[] args ){
Properties prop = new Properties();
InputStream input = null;
try {
input = Post11.class.getClassLoader().getResourceAsStream(filename);
if(input==null){
System.out.println("Sorry, unable to find " + filename);
return;
}
//load a properties file from class path, inside static method
prop.load(input);
//get the property value and print it out
System.out.println("db: "+prop.getProperty("database"));
System.out.println("user: "+prop.getProperty("dbuser"));
System.out.println("password: "+prop.getProperty("dbpassword"));
} catch (IOException ex) {
ex.printStackTrace();
} finally{
if(input!=null){
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
application.properties
database=db
dbuser=asdf
dbpassword=password
输出如下所示
db: db
user: asdf
password: password