关于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();
}
%>