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文件
例:
MySqlDS
jdbc:mysql://localhost :3306/databaseName ?
com.mysql.jdbc.Driver
root
root
ture
//这条默认没有,不写这条默认相当于True,如果把true改成false,则程序不能从当前的vm中读取其他vm中的数据源,而且TRUE的时候程序员需要调用数据源的时候需要使用java:/数据源名称,如果为FALSE则可以去掉Java:/,只要数据源名称就可以了。
此步骤需要注意的地方是jca目录下存在mssql-ds.xml这个文件,注意区分它与mysql-ds.xml
3.修改JBOSS_HOME\server\default\conf\standardjbosscmp-jdbc.xml
java:/MySqlDS
mySql
说明:mySql的JBoss 5.0.1GA中是被注释掉了,需要将注释标记去掉
4.最后再修改JBOSS_HOME\server\default\conf\login-config.xml:
将下面代码添加到中
databaseName
root
root
jboss.jca:service=LocalTxCM,name=MySqlDS
5、如果你是按照上面的步骤一步不拉地走下来的话,那么祝贺你已经成功配置好了JBoss数据库连接池,接下来做一个简单的测试,测试代码如下:
测试代码
-
-
import java.sql.*;
-
import javax.naming.*;
-
import javax.sql.DataSource;
-
//一个用于查找数据源的工具类。
-
public class DatabaseConn {
-
public static synchronized Connection getConnection_r() throws
-
Exception
-
{
-
try
-
{
-
Context = InitialContext(); //得到初始化上
-
下文
-
Object = .lookup("java:/MySqlDS");//查找连接池
-
DataSource = (DataSource) obj;//转换成DataSource
-
return ds. getConnection_r();
-
}
-
catch(SQLException e)
-
{
-
throw e;
-
}
-
catch(NamingException e)
-
{
-
throw e;
-
}
-
}
-
}
-
//showdata.jsp
-
<%@ page = %>
-
<%@ page =%>
-
<%@ page =%>
-
<%
-
Connection = . getConnection_r();
-
Statement =.createStatement();
-
ResultSet =.executeQuery("select * from employee");
-
while(rs.next())
-
{
-
out.println(rs. getInt_r("id"));
-
out.println(rs. getString_r("name"));
-
out.println(rs. getString_r("salary"));
-
out.println(rs. getString_r("department"));
-
out.println(rs. getInt_r("age")+"");
-
}
-
conn.close();
-
stmt.close();
-
rs.close();
-
%>
-
-
-
try {
-
Context ctx = new InitialContext(); //得到初始化上下文
-
Object obj = ctx.lookup("java:/MySqlDS");//查找连接池
-
DataSource ds = (DataSource) obj;//转换成DataSource
-
Connection connect = ds.getConnection();//从连接池中得到一个连接
-
Statement stmt = connect.createStatement();
-
ResultSet rs = stmt.executeQuery("select * from tableName");//这是你的数据库的表噢!
-
while(rs.next()){
-
out.println(rs.getXXX(1));//取出一个字段
-
}
-
-
rs.close();
-
-
stmt.close();
-
-
connect.close();
-
} catch (NamingException e) {
-
e.printStackTrace();
-
} catch(SQLException e1){
-
e1.printStackTrace();
-
}
-
out.flush();
-
out.close();
阅读(1896) | 评论(0) | 转发(0) |