12

設計上の非常に深刻な制限があるため、既存のシステム (PHP + SQL Server) をゼロから書き直す新しいプロジェクトを開始します。

SQL Server について十分な知識があり (現在、既存のシステムで SQL Server 2000 を使用しています)、その新しいバージョン (おそらく 2008) を新しいプロジェクトに採用したいと考えています。

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

SQL Server には 2 つの JDBC ドライバー (jTDS) と Microsoft の 1 つ ( http://msdn.microsoft.com/en-us/data/aa937724.aspx ) があります。両方をテストする必要があると思います。

私が知っておくべきそのようなソリューションに制限はありますか? 誰かがそのような技術の組み合わせを経験したことがありますか?

4

6 に答える 6

8

私は MSQL Server を Java Stack と組み合わせて使用​​するプロジェクトに取り組んできました。JDBC は実際にデータベースを気にする必要がないため、非常にうまく機能します。Hibernate と一緒に ehcache を使用し、MS JDBC ドライバーに問題があったため、jtds に切り替えたところ、非常にうまく機能しました。

かなり前のことなので、まだ MS ドライバーにチャンスを与えたいと思うかもしれません...

于 2008-08-09T20:18:15.240 に答える
1

ここ数年、Hibernate を使用して複数のリモート MSQL Server インスタンスと通信するアプリケーションを実行しており、M$ ドライバーでいくつかの問題が発生した後、早い段階で jTDS ドライバーに切り替えました。切り替え以来、まったく問題はありませんでした。ただし、複雑なアプリケーションではないため、LOB は使用しません。それが役立つことを願っています。

于 2008-08-13T11:11:09.460 に答える
1

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

于 2008-08-13T12:56:57.203 に答える
1

Java と 2008 についてはわかりませんが、Java と SQL2000 についてはあまり問題にならないはずです。lubos が示唆したように、C# を検討することをお勧めしますが、Java に慣れている場合は、JDBC コネクタが Microsoft によってサポートされているため、実際の制限はありません。

于 2008-08-09T13:58:38.453 に答える
1

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

于 2008-09-17T18:02:14.623 に答える
0

JDBC ドライバーは SQL Server 2008 でうまく動作します。問題はありませんでした。ダウンロードする必要があるバージョンは、インストールした JRE のバージョンによって異なります。JRE6 は JDBC4 を使用し、JRE7 は JDBC4.1 を使用します。Microsoft から適切なドライバーをダウンロードしてインストーラーを実行したら 、\authディレクトリからc:\windows\system32ディレクトリにsqljdbc_auth.dllをコピーする必要があります。次に、このコードを使用して接続を確立できます。

あなたのヘッダーで:

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));
        }
    }
}
于 2016-07-29T17:21:30.777 に答える