質問編集履歴
4
誤記を訂正します。
test
CHANGED
File without changes
|
test
CHANGED
@@ -50,9 +50,29 @@
|
|
50
50
|
|
51
51
|
|
52
52
|
|
53
|
-
**3.C
|
53
|
+
**3.「Class.forName」を使う**
|
54
|
+
|
54
|
-
|
55
|
+
「No suitable driver」の解決方式では「Class.forName」を使ことが広く行われている(Java8以前)ようでしたので、試したところ、次のようにJava10ではコンパイルエラーになってしまいました。、
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
```エラーメッセージ
|
60
|
+
|
61
|
+
「例外ClassNotFoundExceptionは報告されません。スローするには、捕捉または宣言する必要があります」
|
62
|
+
|
63
|
+
```
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
### 該当のソースコード
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
```Java10/MySQL8
|
74
|
+
|
55
|
-
|
75
|
+
下記コードを次のコマンドで実行しました。
|
56
76
|
|
57
77
|
|
58
78
|
|
@@ -60,286 +80,254 @@
|
|
60
80
|
|
61
81
|
> java Sample
|
62
82
|
|
63
|
-
|
83
|
+
import java.sql.*;
|
84
|
+
|
64
|
-
|
85
|
+
import java.util.*;
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
public class Sample {
|
90
|
+
|
91
|
+
static final String URL = "jdbc:mysql://localhost/sampledb";
|
92
|
+
|
93
|
+
static final String USERNAME = "root";
|
94
|
+
|
95
|
+
static final String PASSWORD = "password"; //書き換えて実行
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
public static void main(String[] args) {
|
100
|
+
|
101
|
+
try (Connection connection = DriverManager.getConnection
|
102
|
+
|
103
|
+
(URL, USERNAME, PASSWORD);
|
104
|
+
|
105
|
+
Statement statement = connection.createStatement(); ){
|
106
|
+
|
107
|
+
String sql = "SELECT * FROM ENGLISH";
|
108
|
+
|
109
|
+
ResultSet result = statement.executeQuery(sql);
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
while (result.next()) {
|
114
|
+
|
115
|
+
System.out.print (result.getInt ("STUDENTNO" ) + "\t");
|
116
|
+
|
117
|
+
System.out.print (result.getString("STUDENTNAME") + "\t");
|
118
|
+
|
119
|
+
System.out.println(result.getInt ("SCORE" ));
|
120
|
+
|
121
|
+
}
|
122
|
+
|
123
|
+
} catch (SQLException e) {
|
124
|
+
|
125
|
+
e.printStackTrace();
|
126
|
+
|
127
|
+
}
|
128
|
+
|
129
|
+
}
|
130
|
+
|
131
|
+
}
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
```
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
### 試したこと
|
140
|
+
|
141
|
+
|
142
|
+
|
65
|
-
|
143
|
+
次のような手順で確認しました。
|
144
|
+
|
66
|
-
|
145
|
+
■MySQL8のインストール
|
146
|
+
|
67
|
-
|
147
|
+
△インストール前に、MySQL5.1.12をアンインストールし、さらにMySQL関連のファイルをすべて削除し、完全に空の状態でダウンロード/インストールしました。
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
△認証方法としては、「Legacy Authentication Method」を選択しました。
|
152
|
+
|
153
|
+
(Legacyにしないと、うまくいかないようでしたので、再度インストールしました)
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
△MySQLに対するパスを設定しました。
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
■MySQLをコマンドプロンプトで実行し、次のようにデータベースを作成、表示しました。
|
162
|
+
|
163
|
+
```コマンドプロンプト
|
164
|
+
|
165
|
+
>mysql –u root –p
|
166
|
+
|
167
|
+
Enter password: ********
|
168
|
+
|
169
|
+
mysql> source sampledb;
|
170
|
+
|
171
|
+
mysql> use sampledb;
|
172
|
+
|
173
|
+
mysql>select * from english;
|
174
|
+
|
175
|
+
```
|
176
|
+
|
177
|
+
△テーブルは正しく表示されました。
|
178
|
+
|
179
|
+
ここで、sampledbは次のように作りました。
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
```MySQL
|
184
|
+
|
185
|
+
CREATE DATABASE SAMPLEDB;
|
186
|
+
|
187
|
+
USE SAMPLEDB;
|
188
|
+
|
189
|
+
CREATE TABLE ENGLISH (
|
190
|
+
|
191
|
+
STUDENTNO INT(10),
|
192
|
+
|
193
|
+
STUDENTNAME VARCHAR(20),
|
194
|
+
|
195
|
+
SCORE INT
|
196
|
+
|
197
|
+
);
|
198
|
+
|
199
|
+
INSERT INTO ENGLISH VALUES(1001,'野口英雄',70);
|
200
|
+
|
201
|
+
INSERT INTO ENGLISH VALUES(1002,'板垣退助',25);
|
202
|
+
|
203
|
+
INSERT INTO ENGLISH VALUES(1003,'伊藤博文',90);
|
204
|
+
|
205
|
+
```
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
■次に、作成されたSAMPLEDBをJavaのプログラムで表示することにしました。
|
212
|
+
|
213
|
+
△MySQL8のインストールで、「mysql-installer-community-8.0.11.0.msi」が得られました。ダブルクリックすると、「mysql-connector-java-8.0.11.jar」が生成されたので、これがjdbcドライバと判断し、JDKライブラリフォルダへ設定することにしました。
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
△java8では「C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext」の下にコピーしました。
|
218
|
+
|
219
|
+
ところがJava10では、extフォルダはありませんでした。
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
△仕方がないので、libの下に自分でextフォルダを作成して、JDBCドライバを挿入して実行したら、次のメッセージが出て、叱られました。
|
68
224
|
|
69
225
|
```エラーメッセージ
|
70
226
|
|
227
|
+
/lib/ext exists, extensions mechanism no longer supported; Use -classpath instead.
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
```
|
232
|
+
|
233
|
+
■「C:\java\test」フォルダを作成し、Sample.javaとjdbcのドライバをコピーして入れました。
|
234
|
+
|
235
|
+
△次の結果となりました。
|
236
|
+
|
237
|
+
```コマンドプロンプト
|
238
|
+
|
239
|
+
>set CLASSPATH=C:\java\test
|
240
|
+
|
241
|
+
>java Sample
|
242
|
+
|
71
243
|
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sampledb
|
72
244
|
|
73
245
|
(Sample.java:11)
|
74
246
|
|
75
247
|
```
|
76
248
|
|
77
|
-
|
249
|
+
△
|
78
|
-
|
79
|
-
|
80
|
-
|
250
|
+
|
81
|
-
|
251
|
+
ここで、Sample.javaは次のように作りました。
|
82
|
-
|
83
|
-
|
84
|
-
|
252
|
+
|
253
|
+
|
254
|
+
|
85
|
-
```Java10
|
255
|
+
```Java (Java10)
|
256
|
+
|
86
|
-
|
257
|
+
import java.sql.*;
|
258
|
+
|
259
|
+
import java.util.*;
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
public class Sample {
|
264
|
+
|
265
|
+
static final String URL = "jdbc:mysql://localhost/sampledb";
|
266
|
+
|
267
|
+
static final String USERNAME = "root";
|
268
|
+
|
269
|
+
static final String PASSWORD = "password"; //書き換えて実行
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
public static void main(String[] args) {
|
274
|
+
|
275
|
+
try (Connection connection = DriverManager.getConnection
|
276
|
+
|
277
|
+
(URL, USERNAME, PASSWORD);
|
278
|
+
|
279
|
+
Statement statement = connection.createStatement(); ){
|
280
|
+
|
281
|
+
String sql = "SELECT * FROM ENGLISH";
|
282
|
+
|
283
|
+
ResultSet result = statement.executeQuery(sql);
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
while (result.next()) {
|
288
|
+
|
289
|
+
System.out.print (result.getInt ("STUDENTNO" ) + "\t");
|
290
|
+
|
291
|
+
System.out.print (result.getString("STUDENTNAME") + "\t");
|
292
|
+
|
293
|
+
System.out.println(result.getInt ("SCORE" ));
|
294
|
+
|
295
|
+
}
|
296
|
+
|
297
|
+
} catch (SQLException e) {
|
298
|
+
|
299
|
+
e.printStackTrace();
|
300
|
+
|
301
|
+
}
|
302
|
+
|
303
|
+
}
|
304
|
+
|
305
|
+
}
|
306
|
+
|
307
|
+
```
|
308
|
+
|
309
|
+
----------
|
310
|
+
|
87
|
-
|
311
|
+
■前述の方法以外に、次の方法も試してみました。
|
312
|
+
|
88
|
-
|
313
|
+
「C:\java\test」フォルダにSample.java、「C:\java\testlib」にjdbcドライバを入れて実行
|
314
|
+
|
89
|
-
|
315
|
+
△結果は次の通りです。
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
```コマンドプロンプト
|
90
320
|
|
91
321
|
> set CLASSPATH=C:\java\test;C:\java\testlib\mysql-connector-java-8.0.11.jar
|
92
322
|
|
93
323
|
> java Sample
|
94
324
|
|
95
|
-
import java.sql.*;
|
96
|
-
|
97
|
-
import java.util.*;
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
public class Sample {
|
102
|
-
|
103
|
-
static final String URL = "jdbc:mysql://localhost/sampledb";
|
104
|
-
|
105
|
-
static final String USERNAME = "root";
|
106
|
-
|
107
|
-
static final String PASSWORD = "password"; //書き換えて実行
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
public static void main(String[] args) {
|
112
|
-
|
113
|
-
try (Connection connection = DriverManager.getConnection
|
114
|
-
|
115
|
-
(URL, USERNAME, PASSWORD);
|
116
|
-
|
117
|
-
Statement statement = connection.createStatement(); ){
|
118
|
-
|
119
|
-
String sql = "SELECT * FROM ENGLISH";
|
120
|
-
|
121
|
-
ResultSet result = statement.executeQuery(sql);
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
while (result.next()) {
|
126
|
-
|
127
|
-
System.out.print (result.getInt ("STUDENTNO" ) + "\t");
|
128
|
-
|
129
|
-
System.out.print (result.getString("STUDENTNAME") + "\t");
|
130
|
-
|
131
|
-
System.out.println(result.getInt ("SCORE" ));
|
132
|
-
|
133
|
-
}
|
134
|
-
|
135
|
-
} catch (SQLException e) {
|
136
|
-
|
137
|
-
e.printStackTrace();
|
138
|
-
|
139
|
-
}
|
140
|
-
|
141
|
-
}
|
142
|
-
|
143
|
-
}
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
```
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
### 試したこと
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
次のような手順で確認しました。
|
156
|
-
|
157
|
-
■MySQL8のインストール
|
158
|
-
|
159
|
-
△インストール前に、MySQL5.1.12をアンインストールし、さらにMySQL関連のファイルをすべて削除し、完全に空の状態でダウンロード/インストールしました。
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
△認証方法としては、「Legacy Authentication Method」を選択しました。
|
164
|
-
|
165
|
-
(Legacyにしないと、うまくいかないようでしたので、再度インストールしました)
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
△MySQLに対するパスを設定しました。
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
■MySQLをコマンドプロンプトで実行し、次のようにデータベースを作成、表示しました。
|
174
|
-
|
175
|
-
```コマンドプロンプト
|
176
|
-
|
177
|
-
>mysql –u root –p
|
178
|
-
|
179
|
-
Enter password: ********
|
180
|
-
|
181
|
-
mysql> source sampledb;
|
182
|
-
|
183
|
-
mysql> use sampledb;
|
184
|
-
|
185
|
-
mysql>select * from english;
|
186
|
-
|
187
|
-
```
|
188
|
-
|
189
|
-
△テーブルは正しく表示されました。
|
190
|
-
|
191
|
-
ここで、sampledbは次のように作りました。
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
```MySQL
|
196
|
-
|
197
|
-
CREATE DATABASE SAMPLEDB;
|
198
|
-
|
199
|
-
USE SAMPLEDB;
|
200
|
-
|
201
|
-
CREATE TABLE ENGLISH (
|
202
|
-
|
203
|
-
STUDENTNO INT(10),
|
204
|
-
|
205
|
-
STUDENTNAME VARCHAR(20),
|
206
|
-
|
207
|
-
SCORE INT
|
208
|
-
|
209
|
-
);
|
210
|
-
|
211
|
-
INSERT INTO ENGLISH VALUES(1001,'野口英雄',70);
|
212
|
-
|
213
|
-
INSERT INTO ENGLISH VALUES(1002,'板垣退助',25);
|
214
|
-
|
215
|
-
INSERT INTO ENGLISH VALUES(1003,'伊藤博文',90);
|
216
|
-
|
217
|
-
```
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
■次に、作成されたSAMPLEDBをJavaのプログラムで表示することにしました。
|
224
|
-
|
225
|
-
△MySQL8のインストールで、「mysql-installer-community-8.0.11.0.msi」が得られました。ダブルクリックすると、「mysql-connector-java-8.0.11.jar」が生成されたので、これがjdbcドライバと判断し、JDKライブラリフォルダへ設定することにしました。
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
△java8では「C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext」の下にコピーしました。
|
230
|
-
|
231
|
-
ところがJava10では、extフォルダはありませんでした。
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
△仕方がないので、libの下に自分でextフォルダを作成して、JDBCドライバを挿入して実行したら、次のメッセージが出て、叱られました。
|
236
|
-
|
237
|
-
```エラーメッセージ
|
238
|
-
|
239
|
-
/lib/ext exists, extensions mechanism no longer supported; Use -classpath instead.
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
```
|
244
|
-
|
245
|
-
■「C:\java\test」フォルダを作成し、Sample.javaとjdbcのドライバをコピーして入れました。
|
246
|
-
|
247
|
-
△次の結果となりました。
|
248
|
-
|
249
|
-
```コマンドプロンプト
|
250
|
-
|
251
|
-
>set CLASSPATH=C:\java\test
|
252
|
-
|
253
|
-
>java Sample
|
254
|
-
|
255
325
|
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sampledb
|
256
326
|
|
257
327
|
(Sample.java:11)
|
258
328
|
|
259
329
|
```
|
260
330
|
|
261
|
-
△
|
262
|
-
|
263
|
-
ここで、Sample.javaは次のように作りました。
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
```Java (Java10)
|
268
|
-
|
269
|
-
import java.sql.*;
|
270
|
-
|
271
|
-
import java.util.*;
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
public class Sample {
|
276
|
-
|
277
|
-
static final String URL = "jdbc:mysql://localhost/sampledb";
|
278
|
-
|
279
|
-
static final String USERNAME = "root";
|
280
|
-
|
281
|
-
static final String PASSWORD = "password"; //書き換えて実行
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
public static void main(String[] args) {
|
286
|
-
|
287
|
-
try (Connection connection = DriverManager.getConnection
|
288
|
-
|
289
|
-
(URL, USERNAME, PASSWORD);
|
290
|
-
|
291
|
-
Statement statement = connection.createStatement(); ){
|
292
|
-
|
293
|
-
String sql = "SELECT * FROM ENGLISH";
|
294
|
-
|
295
|
-
ResultSet result = statement.executeQuery(sql);
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
while (result.next()) {
|
300
|
-
|
301
|
-
System.out.print (result.getInt ("STUDENTNO" ) + "\t");
|
302
|
-
|
303
|
-
System.out.print (result.getString("STUDENTNAME") + "\t");
|
304
|
-
|
305
|
-
System.out.println(result.getInt ("SCORE" ));
|
306
|
-
|
307
|
-
}
|
308
|
-
|
309
|
-
} catch (SQLException e) {
|
310
|
-
|
311
|
-
e.printStackTrace();
|
312
|
-
|
313
|
-
}
|
314
|
-
|
315
|
-
}
|
316
|
-
|
317
|
-
}
|
318
|
-
|
319
|
-
```
|
320
|
-
|
321
|
-
----------
|
322
|
-
|
323
|
-
■前述の方法以外に、次の方法も試してみました。
|
324
|
-
|
325
|
-
「C:\java\test」フォルダにSample.java、「C:\java\testlib」にjdbcドライバを入れて実行
|
326
|
-
|
327
|
-
△結果は次の通りです。
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
```コマンドプロンプト
|
332
|
-
|
333
|
-
> set CLASSPATH=C:\java\test;C:\java\testlib\mysql-connector-java-8.0.11.jar
|
334
|
-
|
335
|
-
> java Sample
|
336
|
-
|
337
|
-
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sampledb
|
338
|
-
|
339
|
-
(Sample.java:11)
|
340
|
-
|
341
|
-
```
|
342
|
-
|
343
331
|
ほかにもいろいろ試してみましたが、結局上記のエラーとなってしまいます。
|
344
332
|
|
345
333
|
何が問題なのでしょうか。Java10とMySQL8の組み合わせが悪いのでしょうか。よろしくお願いします。
|
3
Java10へのアップロードの問題点であることを明記しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
MySQL
|
1
|
+
Java10にアップデートしたら、MySQLが読めなくなりました。「No suitable driver」エラーとなります。
|
test
CHANGED
@@ -2,23 +2,43 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
ここに質問の内容を詳しく書いてください。
|
6
|
-
|
7
|
-
MySQL
|
5
|
+
Java8で実行していたMySQLを読み込む簡単なサンプルが、Javaのバージョンを10にアップデートしたら、「No suitable driver」エラーとなり、実行できなくなりました。
|
6
|
+
|
7
|
+
Java8とJava10は互換性が保証されないと聞いていましたが、もろに影響を受けてしまいました。MySQLで作成したデータベースを、コマンドプロンプトでjavaを実行して表示する簡単なプログラムなのに動かなくなりました。(eclipse等は使っていません)
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
Java10でMySQLをどのように読み込んだらよいか、ぜひ教えてください。
|
8
12
|
|
9
13
|
|
10
14
|
|
11
15
|
### 発生している問題・エラーメッセージ
|
12
16
|
|
13
|
-
|
17
|
+
**1. lib/extフォルダの廃止**
|
18
|
+
|
14
|
-
|
19
|
+
Java8ではjdbcドライバを「C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext」の下にコピーしていました。
|
20
|
+
|
21
|
+
ところがJava10では、extフォルダはありませんでした。
|
22
|
+
|
23
|
+
自分でフォルダを作成、コピーして実行すると、次のエラーとなりました。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
```エラーメッセージ
|
28
|
+
|
29
|
+
/lib/ext exists, extensions mechanism no longer supported; Use -classpath instead.
|
30
|
+
|
15
|
-
```
|
31
|
+
```
|
16
|
-
|
17
|
-
|
32
|
+
|
18
|
-
|
33
|
+
|
34
|
+
|
19
|
-
|
35
|
+
**2.CLASSPATHの指定**
|
36
|
+
|
20
|
-
|
37
|
+
CLASSPATHを次のように指定して実行すると、次のエラーとなりました。
|
38
|
+
|
39
|
+
|
40
|
+
|
21
|
-
|
41
|
+
```エラーメッセージ
|
22
42
|
|
23
43
|
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sampledb
|
24
44
|
|
@@ -26,6 +46,36 @@
|
|
26
46
|
|
27
47
|
```
|
28
48
|
|
49
|
+
いろいろな様式でクラスパスを指定してみましたが、結果は同じでした。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
**3.CLASSPATHの指定**
|
54
|
+
|
55
|
+
CLASSPATHを次のように指定して実行しました。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
> set CLASSPATH=C:\java\test;C:\java\testlib\mysql-connector-java-8.0.11.jar
|
60
|
+
|
61
|
+
> java Sample
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
すると、次のエラーとなりました。
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
```エラーメッセージ
|
70
|
+
|
71
|
+
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sampledb
|
72
|
+
|
73
|
+
(Sample.java:11)
|
74
|
+
|
75
|
+
```
|
76
|
+
|
77
|
+
|
78
|
+
|
29
79
|
|
30
80
|
|
31
81
|
### 該当のソースコード
|
2
タイトルのJavaのバージョンが、Java10であるべきがJava8にミスしていましたので訂正しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
MySQL8で作成したデータベースをJava
|
1
|
+
MySQL8で作成したデータベースをJava10で読み込もうとすると、「No suitable driver」エラーになってしまいました。
|
test
CHANGED
File without changes
|
1
書式の改善 (コード、メッセージを見やすく)を図りました
test
CHANGED
File without changes
|
test
CHANGED
@@ -108,16 +108,22 @@
|
|
108
108
|
|
109
109
|
△インストール前に、MySQL5.1.12をアンインストールし、さらにMySQL関連のファイルをすべて削除し、完全に空の状態でダウンロード/インストールしました。
|
110
110
|
|
111
|
+
|
112
|
+
|
111
113
|
△認証方法としては、「Legacy Authentication Method」を選択しました。
|
112
114
|
|
113
115
|
(Legacyにしないと、うまくいかないようでしたので、再度インストールしました)
|
114
116
|
|
117
|
+
|
118
|
+
|
115
119
|
△MySQLに対するパスを設定しました。
|
116
120
|
|
117
121
|
|
118
122
|
|
119
123
|
■MySQLをコマンドプロンプトで実行し、次のようにデータベースを作成、表示しました。
|
120
124
|
|
125
|
+
```コマンドプロンプト
|
126
|
+
|
121
127
|
>mysql –u root –p
|
122
128
|
|
123
129
|
Enter password: ********
|
@@ -128,11 +134,15 @@
|
|
128
134
|
|
129
135
|
mysql>select * from english;
|
130
136
|
|
137
|
+
```
|
138
|
+
|
131
139
|
△テーブルは正しく表示されました。
|
132
140
|
|
133
141
|
ここで、sampledbは次のように作りました。
|
134
142
|
|
143
|
+
|
144
|
+
|
135
|
-
|
145
|
+
```MySQL
|
136
146
|
|
137
147
|
CREATE DATABASE SAMPLEDB;
|
138
148
|
|
@@ -154,28 +164,40 @@
|
|
154
164
|
|
155
165
|
INSERT INTO ENGLISH VALUES(1003,'伊藤博文',90);
|
156
166
|
|
157
|
-
|
167
|
+
```
|
168
|
+
|
169
|
+
|
158
170
|
|
159
171
|
|
160
172
|
|
161
173
|
■次に、作成されたSAMPLEDBをJavaのプログラムで表示することにしました。
|
162
174
|
|
163
|
-
△MySQL8のインストールで、「mysql-installer-community-8.0.11.0.msi」が得られました
|
175
|
+
△MySQL8のインストールで、「mysql-installer-community-8.0.11.0.msi」が得られました。ダブルクリックすると、「mysql-connector-java-8.0.11.jar」が生成されたので、これがjdbcドライバと判断し、JDKライブラリフォルダへ設定することにしました。
|
176
|
+
|
177
|
+
|
164
178
|
|
165
179
|
△java8では「C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext」の下にコピーしました。
|
166
180
|
|
167
181
|
ところがJava10では、extフォルダはありませんでした。
|
168
182
|
|
183
|
+
|
184
|
+
|
169
185
|
△仕方がないので、libの下に自分でextフォルダを作成して、JDBCドライバを挿入して実行したら、次のメッセージが出て、叱られました。
|
170
186
|
|
187
|
+
```エラーメッセージ
|
188
|
+
|
171
|
-
|
189
|
+
/lib/ext exists, extensions mechanism no longer supported; Use -classpath instead.
|
190
|
+
|
191
|
+
|
192
|
+
|
172
|
-
|
193
|
+
```
|
173
|
-
|
174
194
|
|
175
195
|
■「C:\java\test」フォルダを作成し、Sample.javaとjdbcのドライバをコピーして入れました。
|
176
196
|
|
177
197
|
△次の結果となりました。
|
178
198
|
|
199
|
+
```コマンドプロンプト
|
200
|
+
|
179
201
|
>set CLASSPATH=C:\java\test
|
180
202
|
|
181
203
|
>java Sample
|
@@ -184,11 +206,15 @@
|
|
184
206
|
|
185
207
|
(Sample.java:11)
|
186
208
|
|
209
|
+
```
|
210
|
+
|
187
211
|
△
|
188
212
|
|
189
213
|
ここで、Sample.javaは次のように作りました。
|
190
214
|
|
215
|
+
|
216
|
+
|
191
|
-
|
217
|
+
```Java (Java10)
|
192
218
|
|
193
219
|
import java.sql.*;
|
194
220
|
|
@@ -240,12 +266,20 @@
|
|
240
266
|
|
241
267
|
}
|
242
268
|
|
269
|
+
```
|
270
|
+
|
243
271
|
----------
|
244
272
|
|
273
|
+
■前述の方法以外に、次の方法も試してみました。
|
274
|
+
|
245
|
-
|
275
|
+
「C:\java\test」フォルダにSample.java、「C:\java\testlib」にjdbcドライバを入れて実行
|
246
276
|
|
247
277
|
△結果は次の通りです。
|
248
278
|
|
279
|
+
|
280
|
+
|
281
|
+
```コマンドプロンプト
|
282
|
+
|
249
283
|
> set CLASSPATH=C:\java\test;C:\java\testlib\mysql-connector-java-8.0.11.jar
|
250
284
|
|
251
285
|
> java Sample
|
@@ -254,6 +288,8 @@
|
|
254
288
|
|
255
289
|
(Sample.java:11)
|
256
290
|
|
291
|
+
```
|
292
|
+
|
257
293
|
ほかにもいろいろ試してみましたが、結局上記のエラーとなってしまいます。
|
258
294
|
|
259
295
|
何が問題なのでしょうか。Java10とMySQL8の組み合わせが悪いのでしょうか。よろしくお願いします。
|