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中如何调用?
...全文
12 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2002-11-28 09:31
社区公告
暂无公告