注册 登录
编程论坛 J2EE论坛

[求助]绝对的初学者连接Sql server 2000的问题

hwoarangzk 发布于 2007-08-30 10:21, 1883 次点击
我是一个J2EE的初学者,刚看到连接数据库这里,有些问题想问大家。我电脑上的是Eclipse3.2,Sql Server 2000,装了SP4补丁了。tomcat也有。有3个跟数据库相关的jar包(名字忘了)。
Class.forClass("com.sqlserver.jdbc.driver")//引号里面写的对吗?应该写什么?
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyDB","sa","");//引号里面的对吗?我没设密码
我主要的问题就是不知道引号里面应该写什么,不熟悉驱动的型号以及他们怎么对应起来,高手来帮帮我吧,谢啦!
24 回复
#2
purana2007-08-30 10:34
看置顶就有连接数据库的帖了.
#3
hwoarangzk2007-08-30 10:42
谢谢!我看了,还有点问题:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
按照我电脑的情况,这句话必须这样写吗?
#4
hwoarangzk2007-08-31 09:16
怎么就没人来帮我啊
我昨天晚上试了一下,连不上,那贴里说:
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
这里pubs是指什么东西啊?
高手来帮帮吧,关于连接数据库我很多都不懂的...
#5
风月_无边2007-08-31 13:58
以下是引用hwoarangzk在2007-8-31 9:16:27的发言:
怎么就没人来帮我啊
我昨天晚上试了一下,连不上,那贴里说:
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
这里pubs是指什么东西啊?
高手来帮帮吧,关于连接数据库我很多都不懂的...

你用的是哪個數據庫就寫上那個名字就可以了﹗﹗

#6
longrm2007-08-31 14:25

给你个例子:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String dbUrl = "jdbc:odbc:test"; // 数据库名称test
String user = "sa";
String pwd = "";

con=DriverManager.getConnection(dbUrl, user, pwd);

这样就可以了,当然得先配置数据源

#7
hwoarangzk2007-08-31 14:33
什么叫配置数据源啊?我想问下,除了将那三个jar包拷到WEB-INF的lib里面就没有其他要做的了吗?谢谢
#8
longrm2007-08-31 14:52
使用〔控制面版〕〔管理工具〕〔数据源 (ODBC)〕创建新的MSSQL数据源,(添加时选择sql server)把数据库弄上去就可以

[此贴子已经被作者于2007-8-31 14:53:45编辑过]


#9
hwoarangzk2007-08-31 15:08

能不能不配置ODBC?我想的就是直接用JDBC连接Eclipse。这样做可以吗?

#10
hwoarangzk2007-08-31 15:10
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
如果用以上语句的话需要配置ODBC数据源吗?
#11
longrm2007-08-31 17:33
那就不知道了,好像是必须的
#12
imbug2007-08-31 19:57
如果是直连的话,就需要导入SQL的那三个JAR包,不需要设置数据源,但是你要是桥连的话,就必须设置数据源
#13
guoxhvip2007-08-31 23:02
Class.forName的参数取决于你用什么方式连接数据库了 比如ODBC技术(实际开发中并不常用) 那需要先配置数据源 参数就该是"sun.jdbc.odbc.JdbcOdbcDriver" 如果是纯java驱动那参数就是"com.microsoft.jdbc.sqlserver.SQLServerDriver"并要下载驱动
#14
hwoarangzk2007-08-31 23:45

我今天晚上试了下,还是不行:
<%@ 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://localhost:1433/MyDatabase";
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)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
这个是我的程序,我导入了3个jar包的,我自己建了一个MyDatabase数据库,里面有张test表:
然后下面的是出错信息:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.testsqlserver_jsp._jspService(testsqlserver_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.testsqlserver_jsp._jspService(testsqlserver_jsp.java:51)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

请教各位!究竟是怎么回事啊???

#15
sea72007-09-01 00:21
谁说要配置数据源了,按你写法就不需要配置数据源
#16
hardes2007-09-01 09:04
以下是引用longrm在2007-8-31 14:52:08的发言:
使用〔控制面版〕〔管理工具〕〔数据源 (ODBC)〕创建新的MSSQL数据源,(添加时选择sql server)把数据库弄上去就可以

我晕......
还有谁用这个连接数据库的啊, 我想死的心都有了!!
哈哈..............

#17
hardes2007-09-01 09:20
以下是引用hwoarangzk在2007-8-31 23:45:50的发言:

我今天晚上试了下,还是不行:
<%@ 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://localhost:1433/MyDatabase";
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)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
这个是我的程序,我导入了3个jar包的,我自己建了一个MyDatabase数据库,里面有张test表:
然后下面的是出错信息:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.testsqlserver_jsp._jspService(testsqlserver_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.testsqlserver_jsp._jspService(testsqlserver_jsp.java:51)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

请教各位!究竟是怎么回事啊???

你启动Tomcat之后把你上面代码在一个jsp页面里面调试下啊
稍微将上面代码改下
数据库连接字符串改成:
String url ="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyDatabase";

Connection conn = DriverManager.getConnection(url,"sa","");
String sql = "select * from test";
PreparedStatement stm = conn.prepareStatement(sql);
ResultSet rss = stm.executeQuery();
while(rss.next())
{
System.out.println("值为:"+rss.getString(1));
}

下面的跟你的都是一样的,先在jsp页面上调式通了在说啊



#18
hwoarangzk2007-09-03 09:34
好,回去先试试,谢谢!
#19
枫飘天涯2007-09-03 09:55
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:driver={sql server};server=.;database=数据库名","用户名","密码");
试试 这个 不用做数据源的桥连
#20
夜雨葬花魂2007-09-04 15:29
一个问题,开两个帖子干嘛   
#21
hwoarangzk2007-09-04 15:45
第一个贴子没人回我...
#22
夜雨葬花魂2007-09-04 15:49
我来的晚  呵呵  加油哥们
#23
xyjbyd2007-09-04 16:06
以下是引用hwoarangzk在2007-8-31 15:10:13的发言:
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
如果用以上语句的话需要配置ODBC数据源吗?

如果用以上的语句,我觉得没有必要配置数据源,我就是这样做的啊!
但是要记得,将DatabaseName=你自己的数据库名称

#24
hwoarangzk2007-09-04 16:24
谢谢大家啊!!!
#25
guofei_gf2007-09-11 11:45
回复:(hwoarangzk)谢谢!我看了,还有点问题:Clas...
可以查看JDBC驱程的说明文档,有具体如何使用的说明
1