John
John

Reputation: 115

connect to database use properties file in java web application

I write a code to connect to database from servlet.I want to use properties.but it does not work.i think i my code or properties file has problem.please help me to correct it.

try
        {
            Properties prop=new Properties();
            FileInputStream in = new FileInputStream(System.getProperty("WEB-INF/dbConnection.properties"));
            prop.load(in);
            in.close();

            String drivers = prop.getProperty("jdbc.drivers");
            String connectionURL = prop.getProperty("jdbc.url");
            String username = prop.getProperty("jdbc.username");
            String password = prop.getProperty("jdbc.password");
            Class.forName(drivers);
            con=DriverManager.getConnection(connectionURL,username,password);
            System.out.println("Connection Successful");

..

and this is my properties file

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.101.84:1521:orcl
jdbc.username=user1
jdbc.password=123

Upvotes: 2

Views: 24135

Answers (4)

try  {
    FileReader reader = new FileReader("Full Path");
    Properties prop = new Properties();
    prop.load(reader);

    String drivers = prop.getProperty("jdbc.driverClassName");
    String connectionURL = prop.getProperty("jdbc.url");
    String username = prop.getProperty("jdbc.username");
    String password = prop.getProperty("jdbc.password");
    Class.forName(drivers);
    Connection con = DriverManager.getConnection(connectionURL, username, password);
    System.out.println("Connection Successful");
} catch (SQLException sqle) {
    // TODO: Add catch code
    sqle.printStackTrace();
} catch (FileNotFoundException fnfe) {
    // TODO: Add catch code
    fnfe.printStackTrace();
} catch (IOException ioe) {
    // TODO: Add catch code
    ioe.printStackTrace();
} catch (ClassNotFoundException cnfe) {
    // TODO: Add catch code
    cnfe.printStackTrace();
}catch (Exception e) {
    // TODO: Add catch code
    e.printStackTrace();
}

Upvotes: 1

KingFeming
KingFeming

Reputation: 1091

For Class name, in the properties file you have defined the driver as 'jdbc.driverClassName'

but when passing variable you just pass as 'jdbc.drivers'

Upvotes: 0

mel3kings
mel3kings

Reputation: 9415

This part:

(System.getProperty("WEB-INF/dbConnection.properties")); 

is actually referring to your classpath, try removing WEB-INF/ or just leave /, for checking root folder.

Or you can specify the fully qualified name, i.e : "C:\\foo\\test\\...\\dbConnection.properties" or "/app/blah/.../dbConnectionProperties"

Upvotes: 0

Mark M
Mark M

Reputation: 1600

Instead of

FileInputStream in = new FileInputStream(System.getProperty("WEB-INF/dbConnection.properties"));

use

InputStream in = getClass().getResourceAsStream("dbConnection.properties");

Upvotes: 1

Related Questions