import java.sql.*;
public class TestDB { public static void main(String[] args) {
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=DB1";
String userName = "sa";
String userPwd = "";
String sql="Select * from table1";
Connection conn;
try {
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPwd);
if(!conn.isClosed()){
System.out.println("Connection Successful!");
Statement smt=conn.createStatement();
ResultSet rs=smt.executeQuery(sql);
while (rs.next()){
System.out.println(rs.getString("id")+" "+rs.getString("name"));
}
smt.close();
conn.close();
}
}catch (Exception e) {
e.printStackTrace();
} }
} 我在测试如何访问表,
我想访问表:table1,并显示出表里面的记录
(表table有id,name两个字段)
可是我运行代码时,会出现错误
Connection Successful!
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'table1' 无效。
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 TestDB.main(TestDB.java:17)
请大家帮我看看,我这是哪里错误。
访问数据库的用户有登录权限,但无操作表的权限
解决办法:
1. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里将你使用的登陆用户的默认数据库设为你所使用的数据库。
2. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里新增一个登录用户(在其中选择SQL Server 身份验证、服务器角色和要访问的数据库),以后便可用些新增用户访问你勾选的数据库了。
我平常的databasename都是小写的!!