【问题标题】:Java + SQL Server - a viable solution?Java + SQL Server - 一个可行的解决方案?
【发布时间】:2010-09-05 15:01:49
【问题描述】:

我要开始一个新项目 - 从头开始​​重写现有系统(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。我认为我们应该测试它们。

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

【问题讨论】:

    标签: java sql-server


    【解决方案1】:

    我参与了一个将 MSQL Server 与 Java Stack 结合使用的项目。它工作得很好而且很长,因为 JDBC 不应该真正关心你的数据库。我们将 ehcache 与 Hibernate 一起使用,并且 MS JDBC 驱动程序出现问题,因此我们切换到 jtds,它确实很好用。

    已经很久了,所以你可能还想给 MS 司机一个机会......

    【讨论】:

      【解决方案2】:

      我不了解 Java 和 2008...但是您不应该对 Java 和 SQL2000 有太多麻烦。正如 lubos 建议的那样,你会帮自己一个忙,看看 c#,但如果你对 Java 更熟悉,那么就不应该有任何真正的限制,因为 JDBC 连接器is supported by Microsoft

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            我倾向于 jTDS 驱动程序。 MSSQL 驱动程序有一个限制,您不能重复读取同一列两次。这在使用 Hibernate 时经常发生。

            【讨论】:

              【解决方案6】:

              JDBC 驱动程序在 SQL Server 2008 上运行良好,我没有遇到任何问题。您需要下载的版本取决于您安装的 JRE 的版本。 JRE6 使用 JDBC4,JRE7 使用 JDBC4.1 等。从 Microsoft 下载正确的驱动程序并运行安装程序后,您需要复制 sqljdbc_auth.dll\auth 目录到 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));
                      }
                  }
              }
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-02-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多