各位达人请进,请教连接数据库问题

jinyuxlc 2008-05-25 09:19:53
源代码如下:

import java.sql.*;

public class Test {
public Test() {
}

public static void main(String args[]) {
try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user = "sa";
String password = " ";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = "select * from dbo.authors";
ResultSet rs = stmt.executeQuery(sql);

while (rs.next()) {
System.out.println("TestName:" + rs.getString(2));
}
rs.close();
stmt.close();
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("-------");
System.err.println(ex.getMessage());
}
}
}


SQL Server2000安装完成,并且启动。三个连接包也已经导入。异常如下:
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at onLine.struts.Test.main(Test.java:14)

请达人赐教到底是哪里出了问题,谢谢了
...全文
61 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinyuxlc 2008-05-25
  • 打赏
  • 举报
回复
多谢,我先试试
sunyujia 2008-05-25
  • 打赏
  • 举报
回复
另外你的贴的异常信息不全,不是关键部分
sunyujia 2008-05-25
  • 打赏
  • 举报
回复
数据库必须打sp3以上补丁,直接打sp4就行了,登录需要混合模式。
测试通过,代码没问题结果如下
TestName:White
TestName:Green
TestName:Carson
TestName:O'Leary
TestName:Straight
TestName:Smith
TestName:Bennet
TestName:Dull
TestName:Gringlesby
TestName:Locksley
TestName:Greene
TestName:Blotchet-Halls
TestName:Yokomoto
TestName:del Castillo
TestName:DeFrance
TestName:Stringer
TestName:MacFeather
TestName:Karsen
TestName:Panteley
TestName:Hunter
TestName:McBadden
TestName:Ringer
TestName:Ringer
zuoguodang 2008-05-25
  • 打赏
  • 举报
回复
可能是驱动不对吧,如果是数据库的问题,会提示连接不上的,SQL Server2000必须打上SP4补丁
zplhl 2008-05-25
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*"%>
<html>
<body bgcolor="#ffffff">
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=pubs";
String name="sa";
String password="";
Connection con=DriverManager.getConnection(url,name,password);

Statement stm=con.createStatement();
String str="select * from authors";
ResultSet rs=stm.executeQuery(str);
while(rs.next()){
String str1=rs.getString("au_id");
String str2=rs.getString("au_lname");
out.println(str1+" "+str2+"<br />");
}
%>
</body>
</html>

刚才马上去做了下,这个是正确的代码;供你参考下;
zplhl 2008-05-25
  • 打赏
  • 举报
回复
你用Javaserver page做吧?
代码如下:<%@ page import="java.sql.*"%>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//这两个中的间距不能为空,很重要哦?
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password);

String sql = "select * from dbo.authors";
PreparedStatement pds=con.prepareStatement(sql);

ResultSet rs = stmt.executeQuery();

while (rs.next()) {
string str1=rs.getString("au_id");
string str2=rs.getString("au_lname");
out.println(str1+" "+str2+"<br />");
}
catch (Exception ex) {
ex.printStackTrace();
System.out.println("-------");
System.err.println(ex.getMessage());
}
%>

试试看吧...

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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