1.将mysql的JDBC驱动放到的JBOSS_HOME\server\default\lib 下
2.把JBOSS_HOME\docs\examples\jca\mysql-ds.xml 复制到JBOSS_HOME\server\default\deploy目录下,修改mysql-ds.xml文件
<jndi-name>MySqlDS</jndi-name>
<use-java-context>false</use-java-context>
<connection-url>jdbc:mysql://localhost:3306/synnex</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>8525330</password>
3.修改JBOSS_HOME\server\default\conf\standardjbosscmp-jdbc.xml
<defaults>
<datasource>java:/MySqlDS</datasource>
......
</defaults>
4.修改JBOSS_HOME\server\default\conf\login-config.xml,在<policy>中添加如下代码
<application-policy name = "MySqlDbRealm">
<authentication>
<login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule" flag = "required">
<module-option name ="principal">数据库名</module-option>
<module-option name ="userName">root </module-option>
<module-option name ="password">8525330 </module-option>
<module-option name="managedConnectionFactoryName"> jboss.jca:service=LocalTxCM,name=MySqlDS
</module-option>
</login-module>
</authentication>
</application-policy>
5.测试代码
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class Client {
public static void main(String[] args) {
Hashtable props = new Hashtable();
props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.naming.NamingContextFactory");
props.put(Context.PROVIDER_URL, "localhost:1099");
props.put("java.naming.rmi.security.manager", "yes");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
try {
Context ctx1 = new javax.naming.InitialContext(props);
DataSource ds = (DataSource) ctx1.lookup("java:/MySqlDS");//这个地方也可以是"MySqlDS"
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from test "); while (rs.next()) {
System.out.println(rs.getString(1));// 取出一个字段
}
rs.close();
stmt.close();
conn.close();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}