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));
        }
    }
}