質問編集履歴
4
誤記修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
|
|
19
|
+
|id|name|list|
|
20
20
|
|
21
21
|
|:--|:--|--|
|
22
22
|
|
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
HashMap<String, String> parameterMap = new HashMap<>();
|
40
40
|
|
41
|
-
try (PreparedStatement preparedStatement = connection.prepareStatement(
|
41
|
+
try (PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM table")) {
|
42
42
|
|
43
43
|
try (ResultSet resultSet = preparedStatement.executeQuery()) {
|
44
44
|
|
3
データの取り出し方を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,6 +12,18 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
+
### データ
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|ID|name|list|
|
20
|
+
|
21
|
+
|:--|:--|--|
|
22
|
+
|
23
|
+
|0|taro|AAA,BBB,CCC|
|
24
|
+
|
25
|
+
|1|hanako|DDD,EEE,FFF|
|
26
|
+
|
15
27
|
|
16
28
|
|
17
29
|
### 該当のソースコード
|
@@ -20,15 +32,35 @@
|
|
20
32
|
|
21
33
|
```java
|
22
34
|
|
23
|
-
// DBから値を取得
|
35
|
+
// DBから上記の値を取得
|
24
36
|
|
25
|
-
List<Map<String, Object>> List
|
37
|
+
public List<Map<String, Object>> getList() throws SQLException {
|
26
38
|
|
27
|
-
|
39
|
+
HashMap<String, String> parameterMap = new HashMap<>();
|
28
40
|
|
29
|
-
|
41
|
+
try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
|
30
42
|
|
43
|
+
try (ResultSet resultSet = preparedStatement.executeQuery()) {
|
44
|
+
|
45
|
+
ArrayList<Map<String, Object>> list = new ArrayList<>();
|
46
|
+
|
47
|
+
while(resultSet.next()) {
|
48
|
+
|
49
|
+
list.add(setResultSetToMap(resultSet));
|
50
|
+
|
31
|
-
|
51
|
+
}
|
52
|
+
|
53
|
+
return list;
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
}
|
60
|
+
|
61
|
+
//Listを代入
|
62
|
+
|
63
|
+
List<Map<String, Object>> List = getList();
|
32
64
|
|
33
65
|
|
34
66
|
|
2
実現したいこと 修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
配列をObject型に格納、その後の取り出し方がわかりません。
|
10
10
|
|
11
|
-
ご教授お願いします。
|
11
|
+
配列で取り出す方法がないか、ご教授お願いします。
|
12
12
|
|
13
13
|
|
14
14
|
|
1
事象の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -90,11 +90,7 @@
|
|
90
90
|
|
91
91
|
// ↓↓ここが不明↓↓
|
92
92
|
|
93
|
-
List<String> list = obj.get("list"); //
|
93
|
+
List<String> list = obj.get("list"); // ※1
|
94
|
-
|
95
|
-
List<String> list = (List<String>) obj.get("list"); // Objectから List<Object> への未検査キャスト⇒△と言われる
|
96
|
-
|
97
|
-
JSONArray list = obj.getJSONArray("list"); // これだとエラー
|
98
94
|
|
99
95
|
|
100
96
|
|
@@ -116,12 +112,46 @@
|
|
116
112
|
|
117
113
|
|
118
114
|
|
115
|
+
※1の部分でobj.get("list")の型が知りたかったので、以下四つを試し、
|
116
|
+
|
117
|
+
- if (obj.get("list") instanceof Object)
|
118
|
+
|
119
|
+
- if (obj.get("list") instanceof String)
|
120
|
+
|
119
|
-
obj.get("list")
|
121
|
+
- if (obj.get("list") instanceof JSONObject)
|
122
|
+
|
123
|
+
- if (obj.get("list") instanceof List)
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
Object,Listの場合Trueが返されたので、List<String>型で受け取れるはず、と※1のように記載しましたが
|
128
|
+
|
129
|
+
記述の時点で「型の不一致: Object から List<String> には変換できません」と警告がでてしまいました。
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
型の不一致のため、キャストする方法に変更しましたが、以下の通り記載すると、
|
136
|
+
|
137
|
+
「Objectから List<Object> への未検査キャスト」と警告表示されます。
|
138
|
+
|
139
|
+
- List<String> list = (List<String>) obj.get("list");
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
また、ほかの配列(JSONArray)で受けられるかと思い、以下のようにしましたが、
|
146
|
+
|
147
|
+
実行時に型が違います、とエラー表示されます。
|
148
|
+
|
149
|
+
- JSONArray list = obj.getJSONArray("list");
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
|
120
154
|
|
121
155
|
|
122
156
|
|
123
157
|
### 補足情報(FW/ツールのバージョンなど)
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
特になし
|