About Properties Class
In Java Program if anything which changes frequently(like jdbc url, username, password etc) is not recommended to hard code in our program. The problem in this approach is if there is any change in java program,to reflect that change we have to recompile,rebuild and redeploy total application and even some times server restart also required,which creates a big business impact to the client.
To overcome this problem, we should go for Properties file. The variable things we have to configure in Properties file and we have to read these properties from java program.
The main advantage of this approach is if there is any change in Properties file and to reflect that change just redeployment is enough, which won’t create any business impact to the client.
Example
db.properties
url = jdbc:oracle:thin:@localhost:1521:XE user = scott password = tiger
import java.sql.*; /** * * @author ashok.mariyala * */ public class JdbcPropertiesTest { public static void main(String[] args) throws Exception { Properties prop = new Properties(); FileInputStream fis = new FileInputStream("db.properties"); prop.load(fis);// to load all properties from properties file into java Properties object String url = prop.getProperty("url"); String user = prop.getProperty("user"); String password = p.getProperty("password"); String sqlQuery = "select * from emp"; Class.forName("oracle.jdbc.OracleDriver"); Connection con = DriverManager.getConnection(url,user,pwd); Statement st = con.createStatement(); boolean flag = false; ResultSet rs = st.executeQuery(sqlQuery); System.out.println("Eno\tEName\tESalary\tEAddress"); while(rs.next()) { System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getDouble(3)+"\t"+rs.getString(4)); } if(flag==false) { System.out.println("No Records found"); } con.close(); } }
If we change the properties in properties file for MySQL database then the program will fetch data from MySQL database.
db.properties
url = jdbc:mysql://localhost:3306/ashokdb user = ashok password = chinni
How many getConnection() methods are available in DriverManager class?
Connection con = DriverManager.getConnection(url,user,pwd); Connection con = DriverManager.getConnection(url,Properties); Connection con = DriverManager.getConnection(url);