win2k环境下基于JBOSS的J2EE开发实践
之二、数据库连接池的配置与测试
说明:此节是在上一节基础之上写的,上一节中我们把JBOSS服务器配置好,并测试通过了。这一节我们来看看怎么样在JBOSS中用Jsp和Servlet连结数据库,并使用它的连接池,你一定要在看完上节后再看这一节。作者联系地址:josserchai@yahoo.com
一、配置MySQL数据库
1、安装好mysql数据库,这个很简单吧,直接上www.mysql.org上下一个,然后直接安装即可,如我就是把mysql安装在C:\mysql目
录下的。设置用户为root,密码为空。
2、在mysql中创建一个数据库,名字为:test;再在此库中创建一个表,表名为tree。使用脚本如下:
create database test;
create table tree(
nodeid int(11) NOT NULL,
nodetext varchar(60),
primary key (`nodeid`)
)
3、然后再此表中插入两条数据
use test;
insert into tree values('1','测试数据1');
insert into tree values('2','测试数据2');
4、下载并安装mySQL的JDBC驱动程序,去www.mysql.org下载吧。下载后的文件名为:mysql-connector-jdbc-3.0.10-stable.zip,
用winzip解开,找到其中mysql-connector-jdbc-3.0.10-stable目录中的mysql-connector-java-3.0.10-stable-bin.jar文件,
把它拷贝到JBOSS安装目录下的Server下的lib目录中,即copy到C:\JBOSS\server\all\lib目录中(注意,我们这里采用的是JBOSS的
具有全部功能的启动方式,JBOSS默认有三个启动方式,用run -c <方式>来启动,这三种方式是:all,具有全部JBOSS服务器
功能;efault,这是默认的方式;minimal,这是最小配置方式。这三种方式分别对就于安装目录下的Server目录听all ,default
和minimal目录)。同时我们要注意:在JBOSS的安装目录下C:\JBOSS\下还有一个lib目录即C:\JBOSS\lib目录,这个目录中存放的是
JBOSS服务器启动时所需的所有jar包,你不能将你的任何外部jar包放入此目录。如果你想启动default,则需将jdbc驱动程序放入
C:\JBOSS\server\default\lib目录中。
5、配置JBOSS的数据库配置文件:在C:\JBOSS\server\all\deploy目录中新建一个mysql-ds.xml文件,注意,文件名一定要以
-(中划线)ds结尾,此xml文件的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MySql</jndi-name>
<connection-url>jdbc:mysql://10.0.0.18:3306/test</connection-url>
<driver-class>org.gjt.mm.mysql.Driver</driver-class>
<user-name>root</user-name>
<password></password>
</local-tx-datasource>
</datasources>
解说一下上面的内容:
<jndi-name>表示的是jndi名称,就是呆会在程序中查找jndi名称要用的(还记得上节中我们用的查找ejb的jndi吧,就是那个,
只不过这个是查找数据库连接池的);<connection-url>是连接字符串,前面是固定的后面紧跟的是你的数据库所在的IP地址及
mysql默认端口,然后跟的是数据库名如test;<driver-class>是固定的数据库驱动类库;
<user-name>是用于连接数据库的用户名,我这里用的是root,你可以用其它的
<password>是上面用户的密码,我的root用户是空密码。
一定要注意这个文件的名称和存放的位置是:C:\JBOSS\server\all\deploy\mysql-ds.xml
6、编写测试用的jsp文件。
在上一节的C:\JBOSS\myproject\jsp\hello.war目录中,新建一个testmysql.jsp文件,内容如下:
<%@page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>测试MySql数据库</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@page import = "javax.sql.DataSource"%>
<%@page import = "javax.naming.InitialContext"%>
<%@page import="java.sql.*"%>
<body>
<h3>测试MySql数据库</h3>
<%
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:/MySql");//这里要和mysql-ds.xml中对应
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM tree");
while ( rs.next() ){
out.println(rs.getString("nodetext") + "<br>");
}
conn.close();
%>
</body>
</html>
然后,把此文件所在的目录hello.war拷贝到C:\JBOSS\Server\all\deploy\目录中,如果你在上一节中己经考贝了此目录到此,则只
需把testmysql.jsp文件拷贝过来即可以了。
7、测试JSP连接数据库
重新启动JBOSS服务器,run -c all,如果你的服务器在你拷贝JDBC驱动程序到server\all\lib目录中之前己经运行,你一定要重启服
务器才行。然后在IE或其它浏览器中输入:http://localhost:8080/hello/testmysql.jsp,看看出来什么了,是不是有两行数据?
对了,这就对了。至于Servlet和EJB中使用数据库连接池的方法也是一样,这个我就不写了。自己去测试一下吧。
二、配置SQL Server2000数据库
配置SQL server数据库,并使用它的连接池过程基本一样的,我就写的简略了一些:过程如下:
1、安装一个SQL Server 2000数据库,或你己经有了在其它电脑上也可以。设置一个用户用于连接它,我这里用sa,密码为空。
2、运行SQL Server客户端,运行以下脚本,生成数据库及表和插入数据:
create database test
go
create table tree(
nodeid int primary key,
nodetext varchar(60)
)
go
insert into tree values('1','SQL Server测试数据1')
go
insert into tree values('2','SQL Server测试数据2')
go
3、下载并安装SQL Server的JDBC驱动程序,下载地址为:
http://www.microsoft.com/downloads/details.aspx?FamilyID=86212d54-8488-481d-b46b-af29bb18e1e5&Dis
playLang=en下载后是一个可执行的安装包,直接运行它,默认安装到C:\Program Files\Microsoft SQL Server 2000
Driver for JDBC下面。
4、安装好后,把C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib目录中的三个jar文件
(msbase.jar;mssqlserver.jar;msutil.jar)拷贝到C:\JBOSS\server\all\lib目录中。
5、配置JBOSS使用MSSQL2k的配置文件,在C:\JBOSS\server\all\deploy目录中新建一个文件命名为:mssql-ds.xml,
其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MSSQL</jndi-name>
<connection-url>jdbc:microsoft:sqlserver://10.0.0.18:1433;DatabaseName=test</connection-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password></password>
</local-tx-datasource>
</datasources>
解说就不必了,各项内容和上面mysql的基本差不多。此文件一定要放入C:\JBOSS\server\all\deploy目录中。
6、编写JSP测试文件,在在上一节的C:\JBOSS\myproject\jsp\hello.war目录中,新建一个testmssql.jsp文件,内容如下:
<%@page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>测试SqlServer2K数据库</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@page import = "javax.sql.DataSource"%>
<%@page import = "javax.naming.InitialContext"%>
<%@page import="java.sql.*"%>
<body>
<h3>测试SqlServer2K数据库</h3>
<%
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:/ MSSQL ");//这里要和mysql-ds.xml中对应
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM tree");
while ( rs.next() ){
out.println(rs.getString("nodetext") + "<br>");
}
conn.close();
%>
</body>
</html>
然后,把此文件所在的目录hello.war拷贝到C:\JBOSS\Server\all\deploy\目录中,如果你在上一节中己经考贝了此目录到此,
则只需把testmssql.jsp文件拷贝过来即可以了。
7、测试JSP连接数据库
重新启动JBOSS服务器,run -c all,如果你的服务器在你拷贝JDBC驱动程序到server\all\lib目录中之前己经运行,你一定要
重启服务器才行。然后在IE或其它浏览器中输入:http://localhost:8080/hello/testmssql.jsp,就可以看致到有两行数据输出。
总结,在上面我们给出了如何在JBOSS中配置和使用不同数据库连接池的方法并给出了测试程序。在下面一节中,我将给出如何在
EJB中连接数据库并给出一个示例。