【Java】【SQLServer】SQLServer用JDBCを利用してローカルのSQLServer2017に接続する
備忘用に残しています
※時間があったらまとめます。
環境
種別 | ツール名 | 備考 |
OS | Windows 10 Pro | |
IDE | Pleiades 2018 | Javaのフルエディションを使用 |
Java | Java8 | |
DB | SQL Server 2017 Developer |
SQLServer のJDBCをJavaプロジェクトに追加する
①該当のバージョンのJDBCをダウンロード
②「C:\Program Files」に解凍
※Microsoftは上記プログラムフォルダに保存することを推奨している模様
※解凍したJDBCにあるinstall.txtで明記されています
③Eclipseのプロジェクトにて任意のフォルダに該当のJDBCのJARファイルを移動する
※私は「mssql-jdbc-7.2.1.jre8.jar」を使用し、ファイルはコピーせずに「ファイルへのリンク」にしました
プロジェクト・エクスプローラーでJDBCを追加したいプロジェクトでコンテキストメニュー(右クリック)でプロパティ―を選択
④Java のビルド・パスで「ライブラリー」タブを選択し、「JAR の追加」ボタン押下
⑤JDBCを入れたフォルダを選択し、「OK」ボタン押下
⑥「適用して閉じる」ボタンを押下する
エラー内容
com.microsoft.sqlserver.jdbc.SQLServerException: ホスト [servername]、ポート 1433 への TCP/IP 接続が失敗しました。エラー: "Connection refused: connect。接続プロパティを調べて、SQL Server のインスタンスがホスト上で実行されていて、ポートへの TCP/IP 接続が許可されており、そのポートへの TCP 接続がファイアウォールにブロックされていないことを確認してください。"。
原因
記載の通り。
自分の場合は、SQL Server のTCP/IP 通信を許可していなかったため、上記エラーが発生していました。
解決策
※他の原因は時間ができたら記載します。
①Windows + R で表示されるファイル名を指定して実行ダイアログにて「SQLServerManager14.msc」 でSQL Server 構成 マネージャー を起動する
②SQL Server 構成マネージャー > SQL Server ネットワークの構成 > MSSQLSERVER のプロトコルを選択し、TCP/IPを選択、コンテキストメニュー(右クリック表示)で有効化を選択
③SQL Server 構成マネージャー > SQL Server のサービス でSQL Server(MSSQLSERVER) を選択し、コンテキストメニュー(右クリック表示)で「再起動」を選択しSQL Serverのサービスを起動し直す
④下記コードを実行
接続確認用のテストコード
※任意の値に変更してください
package testdbconnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectURL {
public static void main(String[] args) {
// Create a variable for the connection string.
String connectionUrl = "jdbc:sqlserver://[servername:[port];databaseName=[dbname];user=[username];password=[password]";
try (Connection con = DriverManager.getConnection(connectionUrl); Statement stmt = con.createStatement();) {
String SQL = "SELECT TOP 10 * FROM [tablename]";
ResultSet rs = stmt.executeQuery(SQL);
// Iterate through the data in the result set and display it.
while (rs.next()) {
System.out.println(rs.getString("[columnname1]") + " " + rs.getString("[columnname2]"));
}
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
System.out.println("can't connectioned");
}
}
}
Author And Source
この問題について(【Java】【SQLServer】SQLServer用JDBCを利用してローカルのSQLServer2017に接続する), 我々は、より多くの情報をここで見つけました https://qiita.com/messiah/items/0bb735428445db8e93b3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .