似乎我的代码无效。我试图从微软NAV Cronus DB中提取数据,但看来JAVA找不到要打印的表。
所以我有两节课 - DAL&控制器
DAL:
import java.sql.*;
public class DAL {
private static String connStr = "jdbc:sqlserver://Localhost;Databases=CronusDB;user=root;password=root;";
public static Connection getConn() throws SQLException {
return DriverManager.getConnection(connStr);
}
public static ResultSet findEmployeeData() throws SQLException {
Statement stmt;
stmt = getConn().createStatement();
String sqlStr = "select [No_], [First Name], [Last Name], [Initials], [Job Title] from [CRONUS Sverige AB$Employee];";
ResultSet rset = stmt.executeQuery(sqlStr);
return rset;
}
}
连接器:
import java.sql.*;
import t3.isprojekt.uppg2.dal.DAL;
public class Controller {
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
DAL.getConn();
System.out.println("Connection Success!");
System.out.println(DAL.findEmployeeData());
}
}
尝试执行代码时,我收到以下错误: 线程“main”中的异常com.microsoft.sqlserver.jdbc.SQLServerException:无效的对象名称'CRONUS Sverige AB $ Employee'。
问题是该表确实存在,并且我尝试将.dbo放在前面但没有成功。有什么想法吗?
答案 0 :(得分:0)
似乎数据库对上层和下层非常敏感。小写字母。这些表在MSSQLServer中列为“CRONUS Sverige ...”,但是当将名称直接复制到JAVA时,它被粘贴为“CRONUS SVERIGE”(大写)。所以终于搞定了!