Java + SQL Server - 一个可行的解决方案?
-
08-06-2019 - |
题
由于设计上存在一些非常严重的限制,我将开始一个新项目 - 从头开始重写现有系统(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));
}
}
}