关于tomcat配置JDNI的问题!!

最近学习hinernate,需要在tomcat 中配置JDNI数据源,于是翻看了网上的很多资料,大致一样。

1.在tomcat 安装目录lib下放入jdbc 连接驱动;

2.增加修改 context.xml文件

3.增加修改web.xml文件

4.写连接测试代码。

 

下面就个人总结做一个详细说明:

 

工具: eclipse 编译器、tomcat 7 、sqlserver2005数据库 

1.文档结构:

2.在eclpise中 打开部署tomcat时 自动生成的Servers项目如图

 2.1.在context.xml 中增加如下代码:

<Resource name="jdbc/test" 
auth="Container" 
type="javax.sql.DataSource"
maxActive="100" 
maxIdle="30" 
maxWait="10000"
username="sa" password="901030" 
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"

url="jdbc:sqlserver://localhost:1433;DatabaseName=db_test"/>

 

关键名词解释:

Resource name:为你的数据源名称,可任意(注意与下面web.xml配置代码一致)。

username、password、daiverClassName、url :这个大家都懂,按自己数据库实际连接语句填写。

其余的:我也不懂,固定不变。

 

2.2在web.xml中增加如下代码:

<!-- JDNI数据源配置 --> 
<resource-ref> 
<description>DB Connection</description> 
<res-ref-name>jdbc/test</res-ref-name> 
<res-type>javax.sql.DataSource</res-type> 
<res-auth>Container</res-auth> 
</resource-ref>

<注意: 其中<res-ref-name>的值一定与前面context.xml中的<Resource name>对应

 

3.Build Path 导入jdbc驱动。

 

4.编写jsp 测试一下。

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.* " %>
<%!Connection ct; %>
<%!ResultSet rs; %>
<%!PreparedStatement ps; %>
<%!String username; %>
<%
try
{
//初始化查找命名空间
Context ctx = new InitialContext(); 

// ctx.lookup("java:comp/env/jdbc/test")括号里的代码“java:comp/env/”是必须的
// “jdbc/test” 是你的Resource name 
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/test");
//取出连接
ct = ds.getConnection();
//下面查询的表自己定义
ps=ct.prepareStatement("select *from user_info");
rs=ps.executeQuery();
while(rs.next()){

username=rs.getString(1); 
}

out.println(username);
%>
<hr>
<% 
out.println("大功告成 !!"); 
} catch (NamingException e) {
System.out.println(e.getMessage());
} catch (SQLException e) {
e.printStackTrace();

}finally{

ct.close();

ps.close();
rs.close();

}


%>

posted @ 2015-08-28 13:00  陶龙清  阅读(261)  评论(0编辑  收藏  举报