Java + SQL Server - жизнеспособное решение?
Я собираюсь начать новый проект - переписать существующую систему (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 . Я думаю, нам стоит протестировать их обоих.
Есть ли какие-то ограничения в таком решении, о которых мне следует знать? Есть ли у кого-нибудь опыт использования такого сочетания технологий?
Ответов (6)6
Я работал над проектом с использованием MSQL Server в сочетании со стеком Java. Он работает очень хорошо и до тех пор, пока JDBC не должен заботиться о вашей базе данных. Мы использовали ehcache вместе с Hibernate, и у нас были проблемы с драйвером MS JDBC, поэтому мы перешли на jtds, и он работает очень хорошо.
Это было довольно давно, так что вы все еще можете дать драйверу MS шанс ...
Драйвер 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));
}
}
}
Я не знаю о Java и 2008 ... но у вас не должно возникнуть особых проблем с Java и SQL2000. Как предложил lubos, вы сделаете себе одолжение, посмотрев на C#, но если вам намного удобнее работать с Java, тогда не должно быть никаких реальных ограничений, поскольку соединитель JDBC поддерживается Microsoft.
В течение нескольких лет мы запускали приложение, использующее Hibernate для связи с несколькими удаленными экземплярами MSQL Server, а также сразу переключились на драйвер jTDS после нескольких проблем с драйвером M $. С переключением у нас вообще не было никаких проблем. Однако это несложное приложение, поэтому в нем не используются большие объекты. Надеюсь, это поможет.