当前位置: 技术问答>java相关
小问题:Access--->SQL Server移植后,java程序不正常工作?
来源: 互联网 发布时间:2015-05-13
本文导语: 一段小程序,原先使用access 库,工作正常。 将库移植到SQL Server,出现如下错误: E:java>java BookQuery SQLException:[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'bookTab' 无效。 另:odbc 设置应无问题,SQL Server 中的...
一段小程序,原先使用access 库,工作正常。
将库移植到SQL Server,出现如下错误:
E:java>java BookQuery
SQLException:[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'bookTab' 无效。
另:odbc 设置应无问题,SQL Server 中的表结构,数据均正常。
问:问题出在哪里??
附程序:
//====================== BookQuery.java ======================
import java.io.*;
import java.sql.*;
class BookQuery
{
public static void main(String args[])
{
try
{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }
catch (ClassNotFoundException ce)
{ System.out.println("SQLException:"+ce.getMessage()); }
try
{
Connection con =
DriverManager.getConnection("jdbc:odbc:bookbase");
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select * from bookTab");
while (rs.next())
{
System.out.println(
"书号: " + rs.getInt(1) + "t" +
"书名: " + rs.getString(2) + "t" +
"作者: " + rs.getString(3) + "t" +
"单价: " + rs.getFloat(4) );
}
stmt.close();
con.close();
}
catch (SQLException e)
{ System.out.println("SQLException:"+e.getMessage()); }
}
}
将库移植到SQL Server,出现如下错误:
E:java>java BookQuery
SQLException:[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'bookTab' 无效。
另:odbc 设置应无问题,SQL Server 中的表结构,数据均正常。
问:问题出在哪里??
附程序:
//====================== BookQuery.java ======================
import java.io.*;
import java.sql.*;
class BookQuery
{
public static void main(String args[])
{
try
{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }
catch (ClassNotFoundException ce)
{ System.out.println("SQLException:"+ce.getMessage()); }
try
{
Connection con =
DriverManager.getConnection("jdbc:odbc:bookbase");
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select * from bookTab");
while (rs.next())
{
System.out.println(
"书号: " + rs.getInt(1) + "t" +
"书名: " + rs.getString(2) + "t" +
"作者: " + rs.getString(3) + "t" +
"单价: " + rs.getFloat(4) );
}
stmt.close();
con.close();
}
catch (SQLException e)
{ System.out.println("SQLException:"+e.getMessage()); }
}
}
|
既然是SqlServer返回错误,与SqlServer连接的程序应该没问题;但找不到表,应该是缺省数据库的事,也许它操作的不是你预想的数据库,建议你显式指定数据库名称,因我从不用JdbcOdbc桥,所以不清楚你那应该怎么写,不过我一般是这样的
jdbc:microsoft:sqlserver://192.168.100.1:1433;DatabaseName=Book
jdbc:microsoft:sqlserver://192.168.100.1:1433;DatabaseName=Book
|
换换使用SQLServerDriver
Connection con;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://服务器名:1433","用户名","密码");
con.setCatalog("数据库名");
Connection con;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://服务器名:1433","用户名","密码");
con.setCatalog("数据库名");
|
我认为还是你的odbc设置有问题,我以前碰到过这种问题,可能是你的默认数据库没设置对,你把默认数据库设置为bookbase再试试!