java连接sql2000数据库的问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:38:14
我新建student数据库,新建一个表info
import java.sql.*;

public class q
{
public static void main(String[] args)
{
String sql;
Connection conn;
Statement stmt;
ResultSet rs;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:student";
String user="sa";
String password="";
conn= DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
sql="select * from info";
rs=stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}
rs.close();
stmt.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
运行时出现错误
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'info' 无效。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:student";

从这两句可以看出来你用的是TYPE1连接数据库
TYPE1是不需要打补丁和下载驱动包的
TYPE4才要

感觉上你的数据库中应该存在info表
我想问题应该是出在数据源上:

开始->控制面板->管理工具->数据源

其中数据库的命名是:student

还需要更改默认的数据库(如果查jobs表的话,则数据库为pubs)

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:student";
你用的是JDBC桥连接驱动,就要在控制面板里面创建一个数据源(你这里是student),连到你的SQL,这样就不需要username,password了,这些全在数据源里面配置好.

如果要用微软件提供的驱动包连数据库的话,就要先导入驱动包(可上网下载),然后又是另外一种写法.

先把概念弄明白.

系统要打sp4补丁,我也是这个问题。

1.检查数据库 student 中是否有 info 表
2.检查建立ODBC连接时是否对应的 student 数据库

URL写的有问题 改下

SP3或者SP4补丁,另外ODBC设置是否正确
感觉上是补丁没打..