tomcat4.1下用jndi连接sql server2000出现问题!!!在线等待问题解决立即给分!!多谢!

ty4278 2002-11-28 09:31:21
我用的是tomcat 4.1+sql server 2000+ms jdbc for sql server 2000。
已经建立了一个名为test的数据库,现在想用jndi连接(最好能用连接池),遇到两个问题:
1、如何设置JNDI Name、Data Source URL、JDBC Driver Class?
2、在jsp中如何调用?
...全文
41 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ty4278 2002-11-29
  • 打赏
  • 举报
回复
各位大侠我把上面的整理了一下!贴出来,多谢!

>>>>>>>>>>>>>>>我在web.xml (<web-app></web-app>之间)中加入:

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/EmployeeAppDb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

>>>>>>>>>>>>>>>>>>>>我在server.xml中加入:

<Resource name="jdbc/EmployeeAppDb" scope="Shareable" type="javax.sql.DataSource" auth="SERVLET"/>
<ResourceParams name="jdbc/EmployeeAppDb">
<parameter><name>user</name><value>sa</value></parameter>
<parameter><name>password</name><value></value></parameter>
<parameter><name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter>
<parameter><name>driverName</name> <value>jdbc:microsoft:sqlserver://192.168.1.3:1433;DatabaseName=zggc</value></parameter>
</ResourceParams>

>>>>>>>>>>>>>>>>>>>>>>>>>>测试代码:test.jsp:

<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%
DataSource ds = null;
Connection con=null;
try{
Context initCtx = new InitialContext();
ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/EmployeeAppDb");
con = ds.getConnection();
Statement stmt = con.createStatement();
stmt.executeUpdate("insert into test (test) values ('测试') ");
}
catch(Exception ex){
out.println(ex.getMessage());
}
%>

>>>>>>>>>>>>>>>>>>>>>>但是执行时报错: Cannot load JDBC driver class 'null'!

>>>>>>>>>>>>>>我的ClASSPATH是:C:\JBuilder7\jdk1.3.1\lib\tools.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\JBuilder7\jdk1.3.1\jre\lib\rt.jar;C:\JBuilder7\jdk1.3.1\jre\lib\i18n.jar;C:\JBuilder7\jdk1.3.1\jre;C:\JBuilder7\jdk1.3.1\jre\lib


>>>>>>>>>>>>>但是我执行这个JSP文件却能成功连接数据库并取出数据:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://192.168.1.3:1433;DatabaseName=zggc";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
<%=rs.getString(1)%>
<%=rs.getString(2)%> <br>
<%}%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>


>>>>>>>>>>不知是什么原因,请高手指导,多谢了!!!!!!!!!!!!!!!!!!!!!!!!
ty4278 2002-11-29
  • 打赏
  • 举报
回复
各位老大!!!修改了一下,现在报新的错误!!!!!:Cannot load JDBC driver class 'null' !

多谢!
worldheart 2002-11-29
  • 打赏
  • 举报
回复
把那三个SQL Server 2000的 .jar包,拷贝到一个没有空格的目录下。
zxhong 2002-11-29
  • 打赏
  • 举报
回复
不是给过你连接了吗,你稍微调整一下就ok了!
jiezhi 2002-11-29
  • 打赏
  • 举报
回复
jdbc没有用过,帮不了你了
ty4278 2002-11-28
  • 打赏
  • 举报
回复
我的server.xml中这样写的
<ResourceParams name="jdbc/dbconnection">
<parameter><name>user</name><value>sa</value></parameter>
<parameter><name>password</name><value> </value></parameter>
<parameter><name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter><parameter><name>driverName</name><value>jdbc:microsoft:sqlserver:192.168.1.3:1433;databasename=zggc</value></parameter></ResourceParams>


--------------测试代码为:
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>

<%
DataSource ds = null;
Connection con=null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/EmployeeDB");
con = ds.getConnection();
Statement stmt = con.createStatement();
stmt.executeUpdate("insert into test (test) values ('测试') ");
}

catch(Exception ex){
System.out.println(ex.getMessage());
}

%>
我的classpath为:C:\JBuilder7\jdk1.3.1\lib\tools.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar
执行时不报任何错误,但是没有在数据表里面插入字串“测试"是什么原因,多谢了!!!!!!!!!!!!!
ty4278 2002-11-28
  • 打赏
  • 举报
回复
能不能给一个完整的例子呀,老大,包括具体的XML配置!多谢
zxhong 2002-11-28
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1190/1190848.xml?temp=.4168207
ahead_lin 2002-11-28
  • 打赏
  • 举报
回复
我也试过这样的问题.都还没解决.帮你up...
ty4278 2002-11-28
  • 打赏
  • 举报
回复
各位老大现在又报错了!!!!!!!!!!!!!!!!!!!!!
:Name jdbc is not bound in this Context !

怎么改呀,多谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
holley8 2002-11-28
  • 打赏
  • 举报
回复
先打印con看有没建立连接
holley8 2002-11-28
  • 打赏
  • 举报
回复
connection的autoCommit有没设置为true?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧