質問編集履歴

5

補足追加・修正

2016/11/09 05:49

投稿

freeair.
freeair.

スコア15

test CHANGED
File without changes
test CHANGED
@@ -126,6 +126,8 @@
126
126
 
127
127
  sb.append(" ,var");
128
128
 
129
+ sb.append(" ,date");
130
+
129
131
  sb.append(" FROM");
130
132
 
131
133
  sb.append(" testtable");
@@ -194,6 +196,8 @@
194
196
 
195
197
  sb.append(" ,var");
196
198
 
199
+ sb.append(" ,date");
200
+
197
201
  sb.append(" FROM");
198
202
 
199
203
  sb.append(" testtable");
@@ -220,6 +224,12 @@
220
224
 
221
225
  sb.append(" ) ttbl2");
222
226
 
227
+
228
+
229
+ sb.append(" (ttbl1.date = ttbl2.date) ");
230
+
231
+
232
+
223
233
  return sb.toString();
224
234
 
225
235
  }

4

補足

2016/11/09 05:49

投稿

freeair.
freeair.

スコア15

test CHANGED
File without changes
test CHANGED
@@ -159,3 +159,69 @@
159
159
  }
160
160
 
161
161
  ```
162
+
163
+
164
+
165
+ 補足--
166
+
167
+ createSqlとcreateSql2を結合したら多分こんな感じです。
168
+
169
+ ```Java
170
+
171
+ private String createSql() {
172
+
173
+ StringBuilder sb = new StringBuilder();
174
+
175
+
176
+
177
+ sb.append(" SELECT");
178
+
179
+ sb.append(" ttbl1.hoge");
180
+
181
+ sb.append(" ,ttbl1.var");
182
+
183
+ sb.append(" ,ttbl2.date");
184
+
185
+ sb.append(" ,ttbl2.cost");
186
+
187
+ sb.append(" FROM");
188
+
189
+
190
+
191
+ sb.append(" (SELECT");
192
+
193
+ sb.append(" hoge");
194
+
195
+ sb.append(" ,var");
196
+
197
+ sb.append(" FROM");
198
+
199
+ sb.append(" testtable");
200
+
201
+ sb.append(" WHERE date = ?");
202
+
203
+ sb.append(" ) ttbl1");
204
+
205
+
206
+
207
+ sb.append(" INNER JOIN");
208
+
209
+ sb.append(" (SELECT");
210
+
211
+ sb.append(" date");
212
+
213
+ sb.append(" ,cost");
214
+
215
+ sb.append(" FROM");
216
+
217
+ sb.append(" testtable2");
218
+
219
+ sb.append(" WHERE date = ?");
220
+
221
+ sb.append(" ) ttbl2");
222
+
223
+ return sb.toString();
224
+
225
+ }
226
+
227
+ ```

3

修正

2016/11/09 05:46

投稿

freeair.
freeair.

スコア15

test CHANGED
File without changes
test CHANGED
@@ -120,17 +120,17 @@
120
120
 
121
121
 
122
122
 
123
- sb.append(" select");
123
+ sb.append(" SELECT");
124
124
 
125
125
  sb.append(" hoge");
126
126
 
127
127
  sb.append(" ,var");
128
128
 
129
- sb.append(" from");
129
+ sb.append(" FROM");
130
130
 
131
131
  sb.append(" testtable");
132
132
 
133
- sb.append(" where = ?");
133
+ sb.append(" WHERE date = ?");
134
134
 
135
135
  return sb.toString();
136
136
 
@@ -142,17 +142,17 @@
142
142
 
143
143
 
144
144
 
145
- sb.append(" select");
145
+ sb.append(" SELECT");
146
146
 
147
147
  sb.append(" date");
148
148
 
149
149
  sb.append(" ,cost");
150
150
 
151
- sb.append(" from");
151
+ sb.append(" FROM");
152
152
 
153
153
  sb.append(" testtable2");
154
154
 
155
- sb.append(" where = ?");
155
+ sb.append(" WHERE date = ?");
156
156
 
157
157
  return sb.toString();
158
158
 

2

間違えたので直し

2016/11/09 05:40

投稿

freeair.
freeair.

スコア15

test CHANGED
File without changes
test CHANGED
@@ -159,53 +159,3 @@
159
159
  }
160
160
 
161
161
  ```
162
-
163
- データ(hoge,var,date,cost)の入ったリストを作る上記のようなものがあるのですが、
164
-
165
- 実際のソースコードの仕組み上whileを二つに分けて作ったので、最終的に纏めあげるようなことをして、上記と同じリストにしたいのですが
166
-
167
- 下記のように、list.addを使用するとdateとcostだけの独立した要素が挿入されてしまうのでどうすればよいか分かりません。
168
-
169
- ご教示のほどお願いします。よろしくお願いします。
170
-
171
-
172
-
173
- ```java
174
-
175
-
176
-
177
- List<aaaEntity> list = new ArrayList<aaaEntity>();
178
-
179
- while (result.next()) {
180
-
181
- aaaEntity entity = new aaaEntity();
182
-
183
-
184
-
185
- entity.setHoge(result.getString("hoge"));
186
-
187
- entity.setVar(result.geString("var"));
188
-
189
- list.add(entity);
190
-
191
- }
192
-
193
- int row = 0;
194
-
195
- while (result2.next()) {
196
-
197
- aaaEntity entity = new aaaEntity();
198
-
199
-
200
-
201
- entity.setDate(result2.getString("date"));
202
-
203
- entity.setCost(result2.getString("cost"));
204
-
205
- list.add(row, entity);
206
-
207
- row++;
208
-
209
- }
210
-
211
- ```

1

追加

2016/11/09 04:24

投稿

freeair.
freeair.

スコア15

test CHANGED
File without changes
test CHANGED
@@ -42,6 +42,138 @@
42
42
 
43
43
 
44
44
 
45
+ String sql = createSql();
46
+
47
+ PreparedStatement stmt = null;
48
+
49
+ ResultSet result = null;
50
+
51
+
52
+
53
+ String sql2 = createSql2();
54
+
55
+ PreparedStatement stmt2 = null;
56
+
57
+ ResultSet result2 = null;
58
+
59
+ try{
60
+
61
+ stmt = getConn().prepareStatement(sql);
62
+
63
+ stmt.setString(1, aiu);
64
+
65
+ result = stmt.executeQuery();
66
+
67
+
68
+
69
+
70
+
71
+ stmt2 = getConn().prepareStatement(sql2);
72
+
73
+ stmt2.setString(1, aiu);
74
+
75
+ result2 = stmt.executeQuery();
76
+
77
+
78
+
79
+
80
+
81
+ while (result.next()) {
82
+
83
+ aaaEntity entity = new aaaEntity();
84
+
85
+
86
+
87
+ entity.setHoge(result.getString("hoge"));
88
+
89
+ entity.setVar(result.geString("var"));
90
+
91
+ list.add(entity);
92
+
93
+ }
94
+
95
+ int row = 0;
96
+
97
+ while (result2.next()) {
98
+
99
+ aaaEntity entity = new aaaEntity();
100
+
101
+
102
+
103
+ entity.setDate(result2.getString("date"));
104
+
105
+ entity.setCost(result2.getString("cost"));
106
+
107
+ list.add(row, entity);
108
+
109
+ row++;
110
+
111
+ }
112
+
113
+ }
114
+
115
+
116
+
117
+ private String createSql() {
118
+
119
+ StringBuilder sb = new StringBuilder();
120
+
121
+
122
+
123
+ sb.append(" select");
124
+
125
+ sb.append(" hoge");
126
+
127
+ sb.append(" ,var");
128
+
129
+ sb.append(" from");
130
+
131
+ sb.append(" testtable");
132
+
133
+ sb.append(" where = ?");
134
+
135
+ return sb.toString();
136
+
137
+ }
138
+
139
+ private String createSql2() {
140
+
141
+ StringBuilder sb = new StringBuilder();
142
+
143
+
144
+
145
+ sb.append(" select");
146
+
147
+ sb.append(" date");
148
+
149
+ sb.append(" ,cost");
150
+
151
+ sb.append(" from");
152
+
153
+ sb.append(" testtable2");
154
+
155
+ sb.append(" where = ?");
156
+
157
+ return sb.toString();
158
+
159
+ }
160
+
161
+ ```
162
+
163
+ データ(hoge,var,date,cost)の入ったリストを作る上記のようなものがあるのですが、
164
+
165
+ 実際のソースコードの仕組み上whileを二つに分けて作ったので、最終的に纏めあげるようなことをして、上記と同じリストにしたいのですが
166
+
167
+ 下記のように、list.addを使用するとdateとcostだけの独立した要素が挿入されてしまうのでどうすればよいか分かりません。
168
+
169
+ ご教示のほどお願いします。よろしくお願いします。
170
+
171
+
172
+
173
+ ```java
174
+
175
+
176
+
45
177
  List<aaaEntity> list = new ArrayList<aaaEntity>();
46
178
 
47
179
  while (result.next()) {