How to connect to DB using JNDI

By October 14, 2011 HowTo 5 Comments
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInEmail this to someone

This is a step-by-step tutorial on connection to database using Java API for a directory service Java Naming and Directory Interface (JNDI) in Jelastic. JNDI allows Java software clients to discover and look up data and objects via a name.

(Jelastic can natively run any Java application with no code changes required so the procedure below is applicable to most Java applications.)

1. Create the environment in Jelastic (with MySQL database in our case) java jndi, jndi java

2. Create a new user in a database:

How to create new user you can see - here (Database name: jelasticDb; User_name : jelastic; Password : jelastic)

3. Modify configuration files in your web-application:

context.xml:

 <Context antiJARLocking="true" path="/JNDI">
    <Resource name="jdbc/jelasticDb" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="jelastic" password="jelastic" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://mysql.jndi-example.jelastic.com/jelasticDb"/>
</Context>

web.xml:

<resource-ref>
 <description>MySQL Datasource example</description>
 <res-ref-name>jdbc/jelasticDb</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>

4. Finally create a connection in a java-class:

 
public class MyConnection{
private DataSource dataSource;

public MyConnection() {
try {

InitialContext context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/jelasticDb");

} catch (NamingException ex) {
Logger.getLogger(MyConnection.class.getName()).log(Level.SEVERE, null, ex);
}
}

public Connection getConnection() {
Connection conn = null;
try {
conn = dataSource.getConnection();
} catch (SQLException ex) {
Logger.getLogger(MyConnection.class.getName()).log(Level.SEVERE, null, ex);
}
return conn;
}
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInEmail this to someone

5 Comments

Leave a Reply

Contact Jelastic for More Information CONTACT
%d bloggers like this: