load a bunch of properties?
Register ServletContextListener to load Init parameters at server start-up.
Load properties and make it visible to other classes statically.
I have already posted a sample code Retrieve Init parameters outside servlet
establish a connection to the database?
Use JNDI to bind the data source.
Use Connection Utility class to get the connection as well as close the connection as soon as its done.
Here is the sample code.
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import com.woodmac.datavisualizer.shared.DVConstants;
public class ConnectionUtil {
private DataSource dataSource;
private static ConnectionUtil instance = new ConnectionUtil();
private ConnectionUtil() {
try {
Context initContext = new InitialContext();
dataSource = (DataSource) initContext.lookup(JNDI_LOOKUP_NAME);
} catch (NamingException e) {
e.printStackTrace();
}
}
public static ConnectionUtil getInstance() {
return instance;
}
public Connection getConnection() throws SQLException {
Connection connection = dataSource.getConnection();
return connection;
}
public void close(Connection connection) throws SQLException {
if (connection != null && !connection.isClosed()) {
connection.close();
}
connection = null;
}
}
If you are using JBOSS in standalone mode
. Then just do some entries in standalone.xml
to create a data source. Just update some of its value as per your database connection such as connection-url
, user-name
and password
.
In this case JNDI_LOOKUP_NAME will be java:jboss/datasources/oracle
<datasource jta="true" jndi-name="java:jboss/datasources/oracle" pool-name="OracleDS" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@ipaddress:1521/sid</connection-url>
<driver>oracle</driver>
<new-connection-sql>select * from dual</new-connection-sql>
<pool>
<min-pool-size>20</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>username</user-name>
<password>password</password>
</security>
<validation>
<check-valid-connection-sql>select * from dual</check-valid-connection-sql>
<background-validation>true</background-validation>
</validation>
<timeout>
<blocking-timeout-millis>30000</blocking-timeout-millis>
<idle-timeout-minutes>1</idle-timeout-minutes>
<use-try-lock>60</use-try-lock>
<allocation-retry>1</allocation-retry>
</timeout>
</datasource>