我将开始一个新项目 - 从头开始重写现有系统(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。我想我们应该对它们进行测试。
我应该知道的解决方案是否存在任何限制?有人有过这种技术组合的经历吗?
答案 0 :(得分:8)
我参与了一个使用MSQL Server和Java Stack的项目。它工作得非常好,并且由于JDBC不应该真正关心您的数据库。我们将ehcache和Hibernate一起使用,并且遇到了MS JDBC驱动程序的问题,因此我们切换到了jtds并且它的工作非常好。
这是很久以前的事了,所以你仍然可能想给MS司机一个机会......
答案 1 :(得分:1)
我不了解Java和2008 ......但是你不应该对Java和SQL2000有太多麻烦。正如lubos建议的那样,你可以帮自己看一下c#,但如果你对Java更加熟悉,那么JDBC连接器is supported by Microsoft
应该没有任何实际限制。答案 2 :(得分:1)
我们已经运行了一个使用Hibernate与多个远程MSQL Server实例通信的应用程序已有几年了,我们也在使用M $驱动程序发生一些问题之后提前切换到了jTDS驱动程序。由于开关我们根本没有任何问题。但是,它不是一个复杂的应用程序,所以它不使用任何LOB。希望有所帮助。
答案 3 :(得分:1)
jTDS很棒。多年来我一直在高可用性生产环境中使用它。
答案 4 :(得分:1)
我会倾向于jTDS驱动程序。 MSSQL驱动程序有一个限制,您无法重新读取同一列两次。使用Hibernate时会经常发生这种情况。
答案 5 :(得分:0)
JDBC驱动程序适用于SQL Server 2008,我没有遇到任何问题。您需要下载的版本取决于您安装的JRE的版本。 JRE6使用JDBC4,JRE7使用JDBC4.1等。从Microsoft下载正确的驱动程序并运行安装程序后,您需要复制 \ auth 目录中的 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));
}
}
}