SQL数据库& Java - 无效的对象名称

时间:2015-09-24 08:30:08

标签: java sql sql-server

似乎我的代码无效。我试图从微软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放在前面但没有成功。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

似乎数据库对上层和下层非常敏感。小写字母。这些表在MSSQLServer中列为“CRONUS Sverige ...”,但是当将名称直接复制到JAVA时,它被粘贴为“CRONUS SVERIGE”(大写)。所以终于搞定了!