2

JavaとMySQLを使用してデータベース管理システムを設計しました。サーバーとしてWAMPを使用しました。すべてがそれで完璧でした..今まで..

ここで、WAMPの代わりにSQLExpressを使用する必要があります。SQLExpressについては何も知りません。デフォルトでインストールしました。

ただし、次の選択を行うことで、 Microsoft SQL Server Management StudioLORDXAX-PCのデータベースに接続できるようになりました(これは私のコンピューターの名前です)。

ここに画像の説明を入力してください

しかし、データベースをJavaプログラムに接続する必要があります。(私は以前、WAMPでJDBCを正常に使用しました)

これを成功させるために助けが必要ですか?特定のものを検索してみましたが、エラーが発生します。誰かが私にきれいな指示を提供できますか?

どんな助けでも大歓迎です。ありがとう!


編集(2)

これは、問題を示す完全なコードです。

package ExpressTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

public class MAIN {

    public static void main(String[] args) {
        new MAIN().start();
    }

    private void start() {
        System.out.println("START");
        String query = "SELECT * FROM logindata";
        getData(query);
        System.out.println("END");
    }

    public ResultSet getData(String query) {
        Connection CON = null;
        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            CON = DriverManager.getConnection(URL, USER, PASS);
            RESULT = CON.createStatement().executeQuery(query);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return RESULT;
    }
    private String URL = "jdbc:jtds:sqlserver://localhost/brandix;instance=sqlexpress";
    private String USER = "";
    private String PASS = "";
    private static ResultSet RESULT;
}

これは完全なNetBeans出力です。

run:
START
java.sql.SQLException: Network error IOException: Connection refused: connect
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:417)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:185)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at ExpressTest.MAIN.getData(MAIN.java:24)
    at ExpressTest.MAIN.start(MAIN.java:16)
    at ExpressTest.MAIN.main(MAIN.java:10)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:519)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
END
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:311)
    at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:261)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:318)
    ... 7 more
BUILD SUCCESSFUL (total time: 7 seconds)
4

4 に答える 4

6

多くの答えが利用可能ですが。あげたいと思います。

ウィンドウ認証を使用しているため。

JTDSURLをから変更します

private String URL = "jdbc:jtds:sqlserver://localhost/brandix;instance=sqlexpress";

private String URL = "jdbc:jtds:sqlserver://localhost/brandix;instance=sqlexpress;useNTLMv2=tru‌​e;domain=workgroup";

または別の選択肢は次のとおりです。

JTDSではなく[MicrosoftJDBCドライバー][1]をダウンロードします。sqljdbc4.jarクラスパスに追加します。

サーバーの接続文字列(JDBC URL)を更新します

使用するClass.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);

URL:jdbc:sqlserver://localhost;user=root;password=‌​123;"

それでも問題が解決しない場合は、続行します。確認する、

TCP / IPネットワークプロトコルを有効にします。これはデフォルトで無効になっており、TCP/IPポートを1433に設定します。これもデフォルトのポート番号です。

  1. SQLServer構成マネージャーを開きます[スタート]->[MicrosoftSQLServer2008]->[構成ツール]->[SQLServer構成マネージャー]

  2. 次に、左側の木で。[SQLServer2005ネットワーク構成]->[SQLEXPRESSのプロトコル]->[TCP/IP]を選択します。

  3. 右クリックして有効にします。

  4. TCP/IPをダブルクリックするとウィンドウボックスが表示されます。「IPアドレス」タブをクリックします

  5. TCPポート値を1433に設定し、[適用]をクリックします

  6. SQLサービスを再起動します。

于 2012-08-24T04:43:26.580 に答える
2

たとえばjTDSのように、SQLServerと通信できるドライバーを使用する必要があります。

その場合、コードは次のようになります。

public ResultSet getData(String query) {
    Connection CON = null;
    try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        CON = DriverManager.getConnection(URL, USER, PASS);
        RESULT = CON.createStatement().executeQuery(query);
    } catch (Exception ex) {
        System.err.println(">> " + ex.getMessage());
    }
    return RESULT;
}
private String URL = "jdbc:jtds:sqlserver://servername/brandix;instance=sqlexpress";
private String USER = "";
private String PASS = "";
private static ResultSet RESULT;

@SPeeの回答も参照してください。

于 2012-08-22T12:16:28.127 に答える
1

まず、MicrosoftのWebサイトからJDBC-Driverをダウンロードします。

http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx

アプリケーションに追加sqljdbc4.jarします。

Javaインストールのとフォルダをコピーしsqljdbc_auth.dllます。c:\windows\system32/bin

次のような接続URLを使用できます。

jdbc:sqlserver://D-PC-IT-02;instanceName=LOKALEINSTANZ;databaseName=MyDatabase;integratedSecurity=true; 

再起動が必要な場合があります。

于 2012-08-22T13:47:44.470 に答える
1

基本的にあなたのステップは次のとおりです:

  1. SQLExpressのMicrosoftJDBCドライバーをクラスパスにインストールします
  2. サーバーの接続文字列(JDBC URL)を更新します
  3. SQLExpressのクエリを更新します

手順2では、ローカルパイプ/名前付きインスタンスではなく、TCP/IP接続を介してSQLExpressを使用できるようにする必要がある場合があります。

ステップ3は最も難しいかもしれません。クエリがSQLExpressに対して有効であるかどうかを確認し、正しいパラメータで存在する関数を使用する必要があります。また、データベース管理システムの場合は、ユーザー管理、テーブル管理などのすべてのクエリも更新する必要があります。

于 2012-08-22T12:11:42.377 に答える