java连接SQL,用的是JDBC,连接上了,statement语句也过了,但是resultset去不执行报错
importjava.sql.*;publicclassDB{publicDB(){try{System.out.println("开始连接数据库...");Class....
import java.sql.*;
public class DB{
public DB(){
try{
System.out.println("开始连接数据库...");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:sqlserver://localhost;1433;database=students","sa","");
System.out.println("已经成功连接数据库...");
st=con.createStatement();
System.out.println("st已经通过。。。");
rs=st.executeQuery("select * from xs;");
System.out.println("rs已经通过。。。");
}catch(ClassNotFoundException e)
{
e.printStackTrace();
System.out.println("连接失败,请从新尝试...");
}catch(SQLException se){
se.printStackTrace();
System.out.println("数据库语句有问题...");
}
finally{
}
}
Connection con;
Statement st;
ResultSet rs;
String sql="select * from [xs]";
}
结果是:开始连接数据库...
已经成功连接数据库...
st已经通过。。。
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'xs' 无效。
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)
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 pg1.DB.<init>(DB.java:15)
at pg1.Main.main(Main.java:5)
数据库语句有问题...
那个朋友帮帮忙,帮忙看一下,复制到自己的机子上看能运行不
对了我忘了,那个分号是后来有网友说的,他让我试试,结果还是一样的结果,是不是数据库出了问题? 展开
public class DB{
public DB(){
try{
System.out.println("开始连接数据库...");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:sqlserver://localhost;1433;database=students","sa","");
System.out.println("已经成功连接数据库...");
st=con.createStatement();
System.out.println("st已经通过。。。");
rs=st.executeQuery("select * from xs;");
System.out.println("rs已经通过。。。");
}catch(ClassNotFoundException e)
{
e.printStackTrace();
System.out.println("连接失败,请从新尝试...");
}catch(SQLException se){
se.printStackTrace();
System.out.println("数据库语句有问题...");
}
finally{
}
}
Connection con;
Statement st;
ResultSet rs;
String sql="select * from [xs]";
}
结果是:开始连接数据库...
已经成功连接数据库...
st已经通过。。。
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'xs' 无效。
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)
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 pg1.DB.<init>(DB.java:15)
at pg1.Main.main(Main.java:5)
数据库语句有问题...
那个朋友帮帮忙,帮忙看一下,复制到自己的机子上看能运行不
对了我忘了,那个分号是后来有网友说的,他让我试试,结果还是一样的结果,是不是数据库出了问题? 展开
4个回答
展开全部
你的数据库是SQLServer 2000 吗??
如果不是就是你的驱动包倒错了
: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]
看下自己的错误
如果不是就是你的驱动包倒错了
: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]
看下自己的错误
追问
是的,这个我也想到了,我把我的三个jar文件添加到环境变量系统变量的classpath值是;.;
%java_home%\lib;.;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar;,;f:\jdbc\msbase.jar;.;f:\jdbc\mssqlserver.jar;,;f:\jdbc\msutil.jar;当然那三个jar文件在f:\jdbc文件夹下
我去用数据源运行下试试,用ODBC方式连接全部通过,看来是我的三个文件有问题啊,谢谢
展开全部
xs对应的表或视图创建了没有,是否是sa用户下的表或视图.你用sa用户通过客户端登陆数据库执行脚本尝试一下
追问
谢谢你的回答,已经找到答案了,因为我用odbc连没问题,直接通过,看来是我的三个jar文件的问题了,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在你的数据库中,没有这个xs表 如果有这个表请去掉xs后面的分号。
追问
谢谢,你能弄到你的机子上试试吗?看看能不能编译运行出结果,有的,我建过了,在查询分析器中可以运行查出结果,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
异常信息说的很清楚嘛:对象名 'xs' 无效
这是你的表名吗?
这是你的表名吗?
追问
嗯,是的,我当时保存的就是这个名字,但是创建表的时候命令是这样:
create table xs
(
表里的内容(不些了这个)
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询