JBOSS管理数据库连接
一、普通JDBC方式:
static final String DB_DRIVER_CLASS = "com.mysql.jdbc.Driver";
static final String DB_URL =
"mysql://localhost:3306/JBossatWorkDB?autoReconnect=true";
Connection connection = null;
try {
// Load the Driver.
Class.forName(DB_DRIVER_CLASS).newInstance( );
// Connect to the database.
connection = DriverManager.getConnection(DB_URL);
} catch (SQLException se) {
...
} catch (...) {
...
}
二、通过JBOSS管理
1、配置文件jaw-ds.xml:
<datasources>
<local-tx-datasource>
<jndi-name>JBossAtWorkDS</jndi-name>
<connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
<driver-class>org.hsqldb.jdbcDriver</driver-class>
<user-name>sa</user-name>
<password></password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>0</idle-timeout-minutes>
<track-statements/>
<metadata>
<type-mapping>Hypersonic SQL</type-mapping>
</metadata>
<depends>jboss:service=Hypersonic-JAW,database=jawdb</depends>
</local-tx-datasource>
.......
2、JNDI查寻器ServiceLocator.java:
package com.jbossatwork.util;
import javax.naming.*;
import javax.sql.*;
public class ServiceLocator {
private ServiceLocator( ) { }
public static DataSource getDataSource(String dataSourceJndiName)
throws ServiceLocatorException {
DataSource dataSource = null;
try {
Context ctx = new InitialContext( );
dataSource = (DataSource) ctx.lookup(dataSourceJndiName);
} catch (ClassCastException cce) {
throw new ServiceLocatorException(cce);
} catch (NamingException ne) {
throw new ServiceLocatorException(ne);
}
return dataSource;
}
}
3、通过JBOSS连接:
static final String DATA_SOURCE= "java:comp/env/jdbc/JBossAtWorkDS"; DataSource dataSource = null; Connection conn = null; try { // Load the Driver. dataSource = ServiceLocator.getDataSource(DATA_SOURCE); // Connect to the database. conn = dataSource.getConnection( ); } catch (SQLException se) { ... } catch (ServiceLocatorException sle) { ... }
勉強心を持てば、生活は虚しくない!