如何配置JNDI操作记实,数据库,连接池

1.登陆管理界面
http://localhost:8080/admin

密码和用户名在你安装的时候设定的,如果忘记(或没有)的话,去改tomcat\conf\tomcat-users.xml,添加admin和manager两个role,一个用户,该用户的role为admin和manager就可以了,按原有的xml复制修改就可以。

2.设置步骤
2.1 点击左边框架中Service菜单项左边的小圆,展开列表.
2.2 点击左边框架中Host (localhost)菜单项左边的小圆,展开列表.
2.3 点击左边框架中你要添加连接池的工作目录的菜单项左边的小圆,展开列表.
2.4 点击左边框架中Data Sources蔡单项,右边框架出现设置页。
2.5 从右边框架中右上角的Data Source Actions下拉列表中选择create new data source
2.6 填写示例:
JNDI Name: jdbc/MyDataSource
Data Source URL: jdbc:oracle:thin:@localhost:1521:MyOracle
JDBC Driver Class: oracle.jdbc.driver.OracleDriver
User Name: test
Password: test


2.7 点击右边框架中右上角save按钮
2.8 点击顶部框架Commit Changes按钮。


进入Data Sources 项 ,在右上角的下拉菜单中选择Create New Data Source ,在其下边的输入框中输入需要的配置信息:

JNDI Name:jdbc/XXX(XXX自己命名,jdbc/XXX为建立的jndi实体名称)

Data Source URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ObjectDataBaseName(目标数据源设置)

JDBC Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver 即使用的数据库驱动程序

User Name: 连接数据库的用户名

Password: 数据库密码

Max. Active Connections: 最大连接数

Max. Idle Connections: 是最大的空闲连接数

Max. Wait for Connection: 最大等待连接数

如果要部署的是个WEB应用程序,则将该应用程序放在 $TOMCAT_HOME/webapps目录下,有两种方式可以引用我们所配置的JNDI数据源
(1)[这种方法可以进行多个项目的建设和发布]
可以在TOMCAT_HOME/conf/Catalina/localhost下新建XXX.xml文件,XXX为所发布的WEB应用程序的名字,如我所发布的WEB应用程序是JndiTest,则.xml文件命名为JndiTest.xml,该文件内容为:

<?xml version='1.0' encoding='utf-8'?>

<Context debug="1" docBase="$Tomcat 5.0_Home/webapps/JndiTest" path="/JndiTest" reloadable="true" workDir="work\Catalina\localhost\JndiTest">

<Resource name="jdbc/test" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/test">

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>password</name>

<value>DataBasePassword</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>4</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>5000</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ObjectDataBaseName</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

</parameter>

<parameter>

<name>username</name>

<value>DataBaseUserName</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>2</value>

</parameter>

</ResourceParams>

</Context>

(2)上面的方法只能实现一个项目,建议熟练了以后用(1)中的方法
为了避免每个WEB应用程序都创建XXX.xml文件,可以修改TOMCAT_HOME/conf下的server.xml文件,修改如下:

在<Host></Host>之间加入:

 <Context path="/JndiTest" docBase="$Tomcat 5.0_Home/webapps/JndiTest" debug="1" reloadable="true">

<Resource name="jdbc/test" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/test">

<parameter>

<name>url</name>

<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ObjectDataBaseName</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>5000</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>4</value>

</parameter>

<parameter>

<name>password</name>

<value>DataBasePassword</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>2</value>

</parameter>

<parameter>

<name>username</name>

<value>DataBaseUserName</value>

</parameter>

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

</ResourceParams>

</Context>


(3)在相应的web.xml里加入
<resource-ref>
<description>SqlServer Datasource example</description>
<res-ref-name>jdbc/SqlServerDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


四.测试:

以上工作都完成后,便可进行测试。首先用普通的jsp页面测试不进行数据库操作时的情况,无误后进行数据库操作测试。

(1)新建一数据源test,含表T_test,并存如数据

(2)在项目的lib文件下部署commons-pool.jar, commons-dbcp.jar

(3)如下为jsp测试页面代码

<%@ page contentType="text/html;charset=gb2312"%> 

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<html>

<body>

<% Context ctx = new InitialContext();

Connection conn=null;

ctx = new InitialContext();

DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/test");

conn = ds.getConnection();

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from T_Test";

ResultSet rs=stmt.executeQuery(sql);
%>

<% while(rs.next()) {

out.println(rs.getString(1));

out.println(rs.getString(2));

out.println(rs.getString(3));

}
%>
<% out.print("数据库操作成功!");

rs.close();

stmt.close();

conn.close();

%>

</body>

</html>


黑色头发 http://heisetoufa.iteye.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值