在Java读写属性文件
属性文件是我们在Java编程语言中用来保存配置参数的文件。我们将这些文件称为资源包,因为它是我们将在应用程序中使用的资源包。
配置参数是什么?
配置参数是您在配置数据库时使用的参数,或者项目中有任何验证,您可以将它们添加为配置参数。
示例:您必须在基于 Java 的 Web 应用程序中使用DBConnect类进行数据库连接。我们将所有数据库 URL、数据库名称、数据库驱动程序保存在这个类中。我们可以在Java项目的资源文件夹中创建一个system.properties文件,而不是在此类中编写此配置参数。我们用于属性文件的扩展名是.properties 。
让我们看看属性文件:
- 属性文件中的所有内容都以键值对的形式存在。
- 因此,为了访问此文件中的任何值,我们可以使用密钥
为什么我们需要一个属性文件?
您可以在没有属性文件的情况下工作,但这里的优点是无论何时更改此文件,您都不必担心编译。
假设您正在创建一个基于Java 的Web 项目,因为您正在使用某个图像路径,并且该图像路径用于项目的不同模块中。因此,如果您想更改路径中的某些内容,您必须在每个模块中更改它而不是我们可以做的事情,我们可以创建一个属性文件,因为我们可以在其中包含图像路径的参数。所以,现在我们不需要改变每个模块。因此,这是使用属性文件的优势。
在这里,我们将创建我们的普通 JDBCMySqLConnection 类。Java
Java
package com.abc;
import java.sql.*;
public class DBConnect {
public static Connection getConn()
{
Connection con = null;
// driver name for mysql
String loadDriver = "com.mysql.cj.jdbc.Driver";
// url of the
String dbURL = "jdbc:mysql://localhost:3306/DbName";
// database
// username to coonect db
String dbUSERNAME = "root";
// password to connect db
String dbPASSWORD = "root";
try {
// load the driver
Class.forName(loadDriver);
con = DriverManager.getConnection(
dbURL, dbUSERNAME, dbPASSWORD);
// get the connection
Statement st = con.createStatement();
ResultSet rs
= st.executeQuery("SELECT * FROM CUSTOMER");
while (rs.next()) {
System.out.println(
"ID -" + rs.getInt(1) + " || "
+ "First-Name -" + rs.getString(2)
+ " || "
+ "LastName -" + rs.getString(4));
}
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con; // return the connection obj.
}
public static void main(String[] args)
{
DBConnect.getConn();
}
}
Java
url=jdbc:mysql://localhost:3306/DBName
driver=com.mysql.cj.jdbc.Driver //Driver class of mysql
userName=root //Db username
password=root //Db password
Java
package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ResourceBundle;
public class DBConnect {
public static Connection getConn()
{
ResourceBundle rd
= ResourceBundle.getBundle("system");
Connection con = null;
// driver name for mysql
String loadDriver = rd.getString("driver");
// url of the database
String dbURL = rd.getString("url");
// username to coonect db
String dbUSERNAME = rd.getString("userName");
// password to connect db
String dbPASSWORD = rd.getString("password");
try {
// load the driver
Class.forName(loadDriver);
// get the connection
con = DriverManager.getConnection(
dbURL, dbUSERNAME, dbPASSWORD);
Statement st = con.createStatement();
ResultSet rs
= st.executeQuery("SELECT * FROM CUSTOMER");
while (rs.next()) {
System.out.println(
"ID -" + rs.getInt(1) + " || "
+ "First-Name -" + rs.getString(2)
+ " || "
+ "LastName -" + rs.getString(4));
}
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
public static void main(String[] args)
{
DBConnect.getConn();
}
}
输出:
这是DBConnect。 Java项目中的Java文件。在这里,我们使用了这个类中的所有参数,因此,每当您的客户想要更改参数时,他/她都必须转到此文件并相应地更改内容。但是相反,我们可以在这里做的是将所有这些配置参数保存在 system.properties文件。
让我们在Java创建一个 system.properties 文件。
只需右键单击您的资源文件夹并创建一个属性文件。
Java
url=jdbc:mysql://localhost:3306/DBName
driver=com.mysql.cj.jdbc.Driver //Driver class of mysql
userName=root //Db username
password=root //Db password
现在,如您所见,我们有一个属性文件,我们在其中保存了所有这些参数,例如数据库的 URL、驱动程序、用户名和密码。我们需要在您的Java类中访问此属性文件。
让我们看看如何访问这个文件
我们必须使用 ResourceBundle 类并且必须使用密钥进行访问。
- 首先,我们将创建资源包的对象并将属性文件名传递给它。
- 接下来,我们必须使用 getString(key) 方法来调用值。
Java
package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ResourceBundle;
public class DBConnect {
public static Connection getConn()
{
ResourceBundle rd
= ResourceBundle.getBundle("system");
Connection con = null;
// driver name for mysql
String loadDriver = rd.getString("driver");
// url of the database
String dbURL = rd.getString("url");
// username to coonect db
String dbUSERNAME = rd.getString("userName");
// password to connect db
String dbPASSWORD = rd.getString("password");
try {
// load the driver
Class.forName(loadDriver);
// get the connection
con = DriverManager.getConnection(
dbURL, dbUSERNAME, dbPASSWORD);
Statement st = con.createStatement();
ResultSet rs
= st.executeQuery("SELECT * FROM CUSTOMER");
while (rs.next()) {
System.out.println(
"ID -" + rs.getInt(1) + " || "
+ "First-Name -" + rs.getString(2)
+ " || "
+ "LastName -" + rs.getString(4));
}
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
public static void main(String[] args)
{
DBConnect.getConn();
}
}
输出: