VSCodeでローカルのSQLServerに接続してSQLを実行するプログラムを作成したいです。
最初にVSCodeのCreate Java Projectコマンドでプロジェクトを作成し、下記のSQLDatebaseConnectionクラスを作成しました。
このコードを実行すると
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
というエラーが発生します。
JDBCを追加していなかったためsetting.jsonにmssql-jdbc-11.2.0.jre18.jarを追加しました。
そしてコードを実行すると下記のエラーが発生してしまいます。
エラー: メイン・クラスSQLDatabaseConnectionを検出およびロードできませんでした
原因: java.lang.ClassNotFoundException: SQLDatabaseConnection
JDBCを追加しただけでエラー内容が変わる理由も理解できませんしどこに問題があるのかも分からない状況です。
お知恵をお貸しください。
追記:
Javaのバージョン情報
>>java -version
openjdk version "18.0.2.1" 2022-08-18
OpenJDK Runtime Environment (build 18.0.2.1+1-1)
OpenJDK 64-Bit Server VM (build 18.0.2.1+1-1, mixed mode, sharing)
SQLDatabaseConnection
1import java.sql.Connection; 2import java.sql.DriverManager; 3import java.sql.ResultSet; 4import java.sql.Statement; 5 6public class SQLDatabaseConnection { 7 8 public static void main(String[] args) { 9 String connectionUrl = "jdbc:sqlserver://localhost;databaseNmae=WideWorldImporters;user=sa;password=Password123;encrypt=true;trustServerCertificate=true;"; 10 ResultSet resultSet = null; 11 12 try ( 13 Connection connection = DriverManager.getConnection(connectionUrl); 14 Statement stmt = connection.createStatement(); 15 ) 16 { 17 String insertSQL = "UPDATE WideWorldImporters.Application.Cities SET CityName = 'java' WHERE CityName = 'test';"; 18 String checkSQL = "SELECT TOP 10 * FROM WideWorldImporters.Application.Cities"; 19 stmt.executeUpdate(insertSQL); 20 resultSet = stmt.executeQuery(checkSQL); 21 22 while (resultSet.next()) { 23 System.out.println(resultSet.getString("CityName")); 24 } 25 } 26 catch (Exception e) { 27 e.printStackTrace(); 28 } 29 } 30}
settings.json
1{ 2 "java.jdt.ls.java.home": "C:\\Users\\yasue\\scoop\\apps\\openjdk18\\current", 3 "java.project.sourcePaths": ["src"], 4 "java.project.outputPath": "bin", 5 "java.project.referencedLibraries": { 6 "include": [ 7 "lib/**/*.jar", 8 "c:\\jar\\sqljdbc_11.2.0.0_jpn\\sqljdbc_11.2\\jpn\\mssql-jdbc-11.2.0.jre18.jar" 9 ] 10 } 11}
launch.json
1{ 2 "version": "0.2.0", 3 "configurations": [ 4 { 5 "type": "java", 6 "name": "Launch Current File", 7 "request": "launch", 8 "mainClass": "${file}" 9 }, 10 { 11 "type": "java", 12 "name": "Launch SQLDatabaseConnection", 13 "request": "launch", 14 "mainClass": "SQLDatabaseConnection", 15 "projectName": "SQLDatabaseConnection_3a354dfc" 16 } 17 ] 18}
「デバッグなしで実行」を押したときにコンソールに表示されるコマンドとエラーです。
PS C:\work\SQLDatabaseConnection> & 'C:\Users\user\scoop\apps\openjdk18\current\bin\java.exe' '-XX:+ShowCodeDetailsInExceptionMessages' '@C:\Users\user\AppData\Local\Temp\cp_3rmdcs7y0uwbacgs3k0ag3apr.argfile' 'SQLDatabaseConnection'
エラー: メイン・クラスSQLDatabaseConnectionを検出およびロードできませんでした
原因: java.lang.ClassNotFoundException: SQLDatabaseConnection

回答1件
あなたの回答
tips
プレビュー