今回はjavaとSQLServerを接続してみましょう。それに必要なJDKとSQLServerのインストールは以下のリンクを見て済ませておいてください。
コマンドプロンプトでの実行環境作り
JDBC Driver for SQL Server
一番基本のコマンドプロンプトを使った開発実行環境を順番に紹介していきます
JDBC Driverのインストール
Microsoft LearnからJDBC Driver for SQL Serverをダウンロードします。
このページの少し下にダウンロードの項目があるのでそこからZIPをダウンロードします
ダウンロードしたら解凍します。その配下にjpn\jarsフォルダーがあります。
その中のmssql-jdbc-12.6.1.jre11.jar等の新しいjarを、C:\Program Files\Java\jdk-21\libにコピーします。
これでjavaのpathにjarが入りました。
userを作ってpasswordを設定して接続する場合はこれで準備できたことになりますが、今回は「サーバーを信頼する」で接続したいのでもう一つ作業があります。
先ほど解凍したフォルダーの中のjpn\auth\x64フォルダーの中にmssql-jdbc_auth-12.6.1.x64.dllというファイルがありますので、これを\Windows\System32に貼り付けます。
これでファイルはあるべきところに収まりました
CLASSPATHの設定
あるべきところに収まったのですが、javaがそこを見てくれないと意味がありません。そこでCLASSPATHを設定してpathを通ります。
そこで環境変数をさわるためにシステム詳細い設定を開いていきます。まずシステムのホームを下にスクロールしてシステムの詳細設定を探します
するとシステムのプロパティが現れるので、環境設定をクリックします
システムの設定にCLASSPATHを追加して「.;C:\Program Files\Java\jdk-21\lib\mssql-jdbc-12.6.1.jre11.jar」を追加します。
これで普通にjavacしたときに指定したjarが追加されます。今後なにか必要になったら、ここに追加します。
VsCodeでコーディング、コンパイル、実行
では、まずはコネクトするだけのサンプルを作ります
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Main { public static void main(String[] args) { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch(ClassNotFoundException e) { throw new IllegalStateException("ドライバーのロードに失敗しました"); } Connection con = null; try { con = DriverManager.getConnection( "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=shop;" + "IntegratedSecurity=true;TrustServerCertificate=true;"); } catch (SQLException e) { e.printStackTrace(); } finally { if (con != null) { try { con.close(); } catch(SQLException e) { e.printStackTrace(); } } } } }
最初にまずSQLServerのドライバーをロードします。
つづいて肝心の接続の宣言を記述します。今回はlocalに無料版のSQLServerが入っていますので、localhostのSQLEXPRESSに接続します。
データベースにはshopを指定、そしてサーバーを信頼して接続します。C#等で接続する時に似ていますが、途中にスペースを入れるとつながりませんでした。
コンパイルと実行をしましょう
java Main.java java Main
encodingはutf-8がデフォルトになったのでいりません。そしてCLASSPATHも設定済みなので単純です。
エラーが出なければOKです