1.配置:Jboss的数据源配置非常简单,只要复制一下数据源的配置模板手动修改一下就ok了。你可以到Jboss的安装目录找到%JBOSS_HOME%/docs/examples/jca文件夹下找到mysql -ds.xml文件将它复制到%JBOSS_HOME%/server/default/deploy目录下打开该文件。
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/test</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>root</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
只要编辑加粗的3个地方就可以了(即:连接地址URL,用户名,密码)。
到这里数据源就配置完成了。
2测试方法之一:建立一测试页面:test.jsp
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="GBK"%>
<%@ page import="java.sql.*, javax.sql.DataSource, javax.naming.InitialContext" %>
<h3>测试JBOSS连接mysql数据库</h3>
<h3>Test mysql Database</h3>
<%
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/ MySqlDS ");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from user");
while ( rs.next() ) {
out.println( rs.getString(1) + "<br>");
out.println( "My name is Justinchen<br>");
}
conn.close();
%>
3.测试方法之二:
使用@Resource 注释来注入来自数据源的JNDI名。
import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.annotation.Resource; import javax.ejb.Remote; import javax.ejb.Stateless; import javax.sql.DataSource; import com.DB; @Stateless @Remote(DB.class) public class DBBean implements DB { @Resource(mappedName = "java:/MySqlDS") // @Resource 注释来注入来自JNDI 的任何资源。 DataSource myDb; public void pingDb() { String str = ""; try { Connection conn = myDb.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM tb_user"); while(rs.next()) { str = rs.getString(2); System.out.println(str); } rs.close(); stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } }