如何读取属性文件并连接MySQL数据库?

时间:2010-11-03 08:58:30

标签: java mysql jdbc

我需要从Java程序中连接我的MySQL数据库,因为我必须使用JDBC。

我需要为它提供必要的连接参数。我必须将这些参数存储在一个单独的配置文件中,以便在执行期间作为参数传递给Java程序。已提供示例db.properties文件供我参考。该文件的五行对应于数据库的主机,端口,数据库名称,用户名和密码。我需要根据您的个人系统设置更改参数。

我该如何处理?如何连接MySQL数据库?

基本上,我有一个createdb.sql文件。我必须在mysql中运行该文件。它将创建一个数据库。现在我需要填充数据库。我有两个输入文件。我需要在java中编写一个程序,它将输入数据文件的名称作为命令行参数,解析文件,并通过JDBC将包含在其中的数据填充到数据库中

2 个答案:

答案 0 :(得分:10)

您可以将db.properties文件保存到外部固定位置,然后访问该文件以便稍后检索您的连接属性:

Properties props = new Properties();
FileInputStream in = new FileInputStream("/external/configuration/dir/db.properties");
props.load(in);
in.close();

String driver = props.getProperty("jdbc.driver");
if (driver != null) {
    Class.forName(driver) ;
}

String url = props.getProperty("jdbc.url");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");

Connection con = DriverManager.getConnection(url, username, password);

然后,在每个环境中,您都可以拥有不同的数据库设置副本,而无需更改应用程序文件(JAR,ER或其他任何内容)。

示例数据库连接属性文件:

# Oracle DB properties
#jdbc.driver=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@localhost:1571:MyDbSID
#jdbc.username=root
#jdbc.password=admin

# MySQL DB properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/MyDbName
jdbc.username=root
jdbc.password=admin

答案 1 :(得分:3)

首先,您需要mysql jdbc connector。下载库并将jar添加到类路径中。

接下来的步骤(在您的应用程序中)是加载jdbc驱动程序创建连接

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
                  "jdbc:mysql://[host][:port]/[database]", username, password);

因此,您必须阅读配置文件,提取值并创建连接字符串(主机,端口,数据库部分)。


如果您正在使用eclipse:在项目中创建一个'lib'文件夹,将jar复制到该文件夹​​,右键单击jar并将其添加到构建路径。

如果你手动执行应用程序,你就这样做了:

java com.example.MyApplication

现在这样做:

java -cp .;path/to/jarfile/connector.jar com.example.MyApplication

(我不确定lib是否命名为connector.jar,在这里使用正确的文件名)

这是tutorial on adding libraries aka "setting the classpath" for java and javac。你需要理解这个概念!