Java – 连接到Linux上的SQL Server数据库

我已经下载并导入到我的项目中, 该 JDBC驱动程序应该支持Linux(尽pipe只在SUSE Linux上进行了testing)。

我想要的是能够通过Linux上的Java使用.mdf数据库。 查询显然需要运行,而不是简单地连接到数据库 – 如果我正确理解这一点。 我发现了一个关于我的问题,似乎有关于我的问题的有价值的信息。

所以我在想FreeTDS + JDBC的组合。 查询是否按预期执行,还是必须在Windows上原生使用数据库? 后者基本上压缩了Java提供的操作系统不可知论,如果可能的话,我想避免这种操作。

数据库本身并不是什么奇特的东西,只有几张桌子 – 毕竟这仅仅是一个学校的任务。 如有需要,我会提供更多信息。

一个mdf文件可以是一个旧的(基于JET的)Microsoft Access数据库文件,所以一个完全不同的产品SQL server的JDBC驱动程序不会帮你太多。 在这里,有几篇文章解释了如何使用JDBC-ODBC桥通过ODBC驱动程序绕道访问Access数据库,但是由于您特别提到Linux不会帮助您。

我看到两种可能的(免费)方法:

  1. 使用开源的jackcess软件包,允许跨平台的Java程序打开,读写MS Access数据库
  2. 将MSAccess数据库文件的内容传输到具有本地Java驱动程序(即,大多数不是MS Access)的某个数据库。

然而,一个mdf文件也可能是一个SQLserver数据库,但是在Linux下使用这个数据库也是相当棘手的,因为你需要一些版本的SQL server才能打开它 – 在这里查看一些关于如何“附加“这样的mdf文件到SQLserver的已安装的实例 – 但据我所知,没有在Linux下运行的SQL server版本。 因此,除非你可以找到一些Windows机器来运行SQLserver,然后使用JDBC驱动程序连接到它,否则前面提到的两个选项都可能是有效的选择(例如,选项1 =将数据复制到MSAccess文件并访问该文件与jackcess或选项2,将数据复制到一个Linux的宽容数据库与一个体面的JDBC驱动程序,并使用它)

有些人被我的问题误导了(我不是母语为英语的人,可能就是这样),数据库本意是在本地运行(显式不在远程服务器上),而SQL server + Linux组合则无法运行。 葡萄酒是可能的,但这太麻烦了。 因此,解决方案是简单地在Windows上使用SQL server,或使用像MySQL这样的替代跨平台RDBMS。 不过,我会接受fvu的编辑答案,并感谢其他用户在他们投资自己的答案的时候。