2008-08-09 6 views
10

私は新しいプロジェクトを開始しようとしています。設計上のいくつかの非常に重大な制限のために、既存のシステム(PHP + SQL Server)をゼロから書き直します。Java + SQL Server - 実行可能なソリューションですか?

私たちは、SQL Serverについてよく知っています(現在は既存のシステムでSQL Server 2000を使用しています)。新しいプロジェクトでは新しいバージョン(2008年)を採用したいと考えています。

私は本当にJavaが提供するテクノロジー、特にSpring FrameworkとWicketが好きです。以前は他のプロジェクトや課題からJavaをよく知っています。 したがって、JavaとMicrosoft SQL Serverの使用を検討します。

SQL Server用の2つのJDBCドライバ - jTDSとMicrosoftのもの - http://msdn.microsoft.com/en-us/data/aa937724.aspxがあります。私たちは両方をテストすべきだと思う。

知っておくべき解決策には何らかの制限がありますか?誰かがそのような技術の組み合わせを体験していますか?

答えて

8

私はJava Stackと組み合わせてMSQL Serverを使用するプロジェクトです。 JDBCは実際にあなたのデータベースを気にするべきではないので、とてもうまくいっています。私たちはehcacheをHibernateと共に使用し、MS JDBC Driverに問題があったので、jtdsに切り替えました。本当にうまく動作します。

それでもMSドライバーにチャンスを与えるたいかもしれないので、それは我々がここ数年の間、複数のリモートMSQL Serverインスタンスに話し休止状態を使用してアプリケーションを実行してきた...、かなりしばらく前

1

私はJavaと2008についてはわかりませんが、JavaやSQL2000にはあまり問題はありません。 Rubosが示唆するように、あなたはC#を見て欲しいと思いますが、Javaをもっと快適に使用するには、JDBCコネクタとして本当の制限はありません。is supported by Microsoft

1

だと私たちはまた、M $ドライバーに関するいくつかの問題の後で早い段階でjTDSドライバーに切り替えました。スイッチ以来、私たちはまったく問題がありませんでした。しかし、複雑なアプリケーションではないため、LOBを使用しません。希望が役立ちます。

1

jTDSが優れています。高可用性の生産環境で何年も問題なく使用してきました。

1

私はjTDSドライバに頼るでしょう。 MSSQLドライバには、同じ列を2度は再読み込みできないという制限があります。これは、Hibernateを使用すると頻繁に発生します。

0

JDBCドライバはSQL Server 2008でうまく動作しますが、問題はありませんでした。ダウンロードする必要があるバージョンは、インストールしたJREのバージョンによって異なります。 JRE6は、Microsoftから適切なドライバをダウンロードし、インストーラを実行しますがCに\認証ディレクトリから sqljdbc_auth.dllをコピーする必要があります一度JRE7はJDBC4.1などを使用して、JDBC4を使用しています:\ 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)); 
     } 
    } 
}