JAVA 连接 SQL SERVER 2000 出现错误,高手帮我看看。
sql server 2000 sp4 已经装了;
jdbc 驱动 已经装了;
三个jar包已经引入,确定没问题;
以下是我用来测试的代码:
package test;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public Test() {
}
public static void main(String[] args) {
new Test().connect();
}
private void connect() {
Connection conn = null;
ResultSet rs = null;
Statement st = null;
try{
Driver driver = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
DriverManager.registerDriver(driver);
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName = mydb", "sa", "sa");
st = conn.createStatement();
System.out.println("Stment 创建成功 OKOKOKOKOKOK!");
rs = st.executeQuery("select * from test");
System.out.println("OKOKOKOKO");
if(rs.next()){
System.out.println("OKOKOKOKO");
System.out.println(rs.getString("username"));
}
}catch(Exception ex){
System.out.println(ex.getMessage());
ex.printStackTrace();
}
finally{
try {
if(rs !=null){
rs.close();
}
if(st != null)
st.close();
if(conn != null){
conn.close();
}
}
catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
}
}
与数据库已连接上, ResultSet 对象不能创建。
错误提示中的 test 是 数据库 mydb 里一个表
使用的 JB 2006 运行结果是:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'test' 无效。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
Stment 创建成功 OKOKOKOKOKOK!
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'test' 无效。
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at test.Test.connect(Test.java:34)
at test.Test.main(Test.java:17)
参考答案:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName = mydb", "sa", "sa");
try语句块里这样写就行,不看你的程序,单就提示信息而言,发生错误的原因可能有以下几点:
一是数据库直连包
二是检查下数据库服务器是否开启,如果已经开启,查看一下用户名和密码是否都是sa,
最后就是你可以直接把sql包引进来看一下有没有问题