由于设计上存在一些非常严重的限制,我将开始一个新项目 - 从头开始​​重写现有系统(PHP + SQL Server)。

我们对 SQL Server 有一定的了解(目前我们在现有系统中使用 SQL Server 2000),并且我们希望在我们的新项目中使用它的较新版本(我猜是 2008 年)。

我真的很喜欢 Java 提供的技术 - 特别是 Spring Framework 和 Wicket,并且我之前通过其他项目和作业对 Java 非常熟悉。因此,我们考虑使用Java和Microsoft SQL Server。

SQL Server 有两种 JDBC 驱动程序 - jTDS 和 Microsoft 的 - http://msdn.microsoft.com/en-us/data/aa937724.aspx. 。我认为我们应该对它们两者进行测试。

我应该知道这种解决方案有什么限制吗?有人经历过这样的技术组合吗?

有帮助吗?

解决方案

我曾参与过一个将 MSQL Server 与 Java 堆栈结合使用的项目。它工作得很好而且时间很长,因为 JDBC 不应该真正关心您的数据库。我们将 ehcache 与 Hibernate 一起使用,并且 MS JDBC 驱动程序出现问题,因此我们改用 jtds,它工作得非常好。

已经过去很久了,所以你可能仍然想给 MS 驱动程序一个机会......

其他提示

我不知道Java和2008...但使用 Java 和 SQL2000 应该不会有太多麻烦。正如 lubos 所建议的,您可以看看 C#,但如果您对 Java 更熟悉,那么 JDBC 连接器就不应该有任何真正的限制 由微软支持

几年来,我们一直在使用 Hibernate 运行一个与多个远程 MSQL Server 实例通信的应用程序,并且在 M$ 驱动程序出现一些问题后,我们也很早就切换到了 jTDS 驱动程序。自从切换以来,我们没有遇到任何问题。然而,它不是一个复杂的应用程序,因此它不使用任何 LOB。希望有帮助。

jTDS 非常好。我已经在高可用性生产环境中使用它多年,没有出现任何问题。

我倾向于 jTDS 驱动程序。MSSQL 驱动程序有一个限制,即您无法将同一列重新读取两次。使用 Hibernate 时经常会发生这种情况。

JDBC 驱动程序与 SQL Server 2008 配合良好,我使用它没有遇到任何问题。您需要下载的版本取决于您安装的JRE版本。JRE6使用JDBC4,JRE7使用JDBC4.1等。从 Microsoft 下载正确的驱动程序并运行安装程序后,您需要复制sqljdbc_auth.dll 来自 \验证 目录到 c:\windows\system32 目录。然后可以使用此代码来建立连接:

在你的标题中:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

在你的班级中:

public class connectToSQL {

    public void connectToDB() throws Exception {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String connectionUrl = "jdbc:sqlserver://<IPADDRESS>:<PORT>;DatabaseName=<NAME OF DATABASE TO CONNECT TO>;IntegratedSecurity=false";    
        Connection con = DriverManager.getConnection(connectionUrl, "<SQL SERVER USER LOGIN>", "<SQL SERVER PASSWORD>");
        Statement s = con.createStatement();
        ResultSet r = s.executeQuery("SELECT * FROM <TABLENAME TO SELECT FROM>");
        while (r.next()) {
            System.out.println(r.getString(1));
        }
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top