Java + SQL Server - жизнеспособное решение?
Я собираюсь начать новый проект - переписать существующую систему (PHP + SQL Server) с нуля из-за некоторых очень серьезных ограничений по дизайну.
У нас есть довольно хорошие знания SQL Server (в настоящее время мы используем SQL Server 2000 в существующей системе), и мы хотели бы использовать его новую версию (2008, я думаю) в нашем новом проекте.
Я действительно люблю технологии, предлагаемые Java, в частности Spring Framework и Wicket, и я до сих пор хорошо знаком с Java из других проектов и назначений.
Поэтому мы рассматриваем использование Java и Microsoft SQL Server.
Есть два драйвера JDBC для SQL Server - jTDS и Microsoft one - http://msdn.microsoft.com/en-us/data/aa937724.aspx. Я думаю, мы должны проверить их обоих.
Существуют ли какие-либо ограничения в таком решении, о котором я должен знать? Кто-нибудь сталкивается с такой технологической комбинацией?
Ответы
Ответ 1
Я работал над проектом с использованием MSQL Server в сочетании с Java Stack. Он работает очень хорошо и долго, так как JDBC не должен заботиться о вашей базе данных. Мы использовали ehcache вместе с Hibernate и имели проблемы с драйвером MS JDBC, поэтому мы переключились на jtds, и он работает очень хорошо.
Это довольно давно, так что вы все равно можете дать драйверу MS шанс...
Ответ 2
Я не знаю о Java и 2008... но вы не должны иметь слишком много проблем с Java и SQL2000. Как предложил lubos, вы будете делать одолжение, чтобы посмотреть на С#, но если вам гораздо удобнее Java, тогда не должно быть никаких реальных ограничений, поскольку JDBC-коннектор поддерживается Microsoft
Ответ 3
В течение нескольких лет мы запускали приложение, использующее Hibernate, которое говорило с несколькими удаленными экземплярами MSQL Server, и мы также переключились на драйвер jTDS на раннем этапе после нескольких проблем с драйвером M $. С коммутатором у нас не было никаких проблем. Однако это не сложное приложение, поэтому оно не использует никаких больших объектов. Надеюсь, что это поможет.
Ответ 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));
}
}
}