Revision 44198 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/PerformChangesOperation.java
PerformChangesOperation.java | ||
---|---|---|
9 | 9 |
import java.util.List; |
10 | 10 |
import org.apache.commons.collections.CollectionUtils; |
11 | 11 |
import org.apache.commons.lang3.StringUtils; |
12 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
|
13 |
import org.gvsig.expressionevaluator.ExpressionBuilder.Variable; |
|
12 | 14 |
import org.gvsig.fmap.dal.DataTypes; |
13 | 15 |
import org.gvsig.fmap.dal.exception.DataException; |
14 | 16 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
... | ... | |
24 | 26 |
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase; |
25 | 27 |
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils; |
26 | 28 |
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference; |
29 |
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_FEATURE_TYPE; |
|
30 |
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_TABLE; |
|
27 | 31 |
import org.gvsig.tools.dispose.Disposable; |
28 | 32 |
import org.gvsig.tools.dispose.DisposeUtils; |
29 | 33 |
|
... | ... | |
88 | 92 |
FeatureType type |
89 | 93 |
) { |
90 | 94 |
JDBCSQLBuilderBase sqlbuilder = createSQLBuilder(); |
95 |
ExpressionBuilder expbuilder = sqlbuilder.expression(); |
|
96 |
|
|
91 | 97 |
sqlbuilder.delete().table() |
92 | 98 |
.database(this.table.getDatabase()) |
93 | 99 |
.schema(this.table.getSchema()) |
... | ... | |
95 | 101 |
for (FeatureAttributeDescriptor attr : type) { |
96 | 102 |
if (attr.isPrimaryKey()) { |
97 | 103 |
sqlbuilder.delete().where().and( |
98 |
sqlbuilder.eq(
|
|
99 |
sqlbuilder.column(attr.getName()),
|
|
100 |
sqlbuilder.parameter(attr.getName()).as_variable()
|
|
104 |
expbuilder.eq(
|
|
105 |
expbuilder.column(attr.getName()),
|
|
106 |
expbuilder.parameter(attr.getName()).as_variable()
|
|
101 | 107 |
) |
102 | 108 |
); |
103 | 109 |
} |
... | ... | |
117 | 123 |
|
118 | 124 |
PreparedStatement st = null; |
119 | 125 |
Disposable paramsDisposer = null; |
126 |
sqlbuilder.setProperties( |
|
127 |
Variable.class, |
|
128 |
PROP_TABLE, table |
|
129 |
); |
|
120 | 130 |
String sql = sqlbuilder.delete().toString(); |
121 | 131 |
try { |
122 | 132 |
st = conn.prepareStatement(sql); |
... | ... | |
149 | 159 |
FeatureType type |
150 | 160 |
) { |
151 | 161 |
JDBCSQLBuilderBase sqlbuilder = createSQLBuilder(); |
162 |
ExpressionBuilder expbuilder = sqlbuilder.expression(); |
|
152 | 163 |
|
153 | 164 |
sqlbuilder.insert().table() |
154 | 165 |
.database(this.table.getDatabase()) |
... | ... | |
160 | 171 |
} |
161 | 172 |
if (attr.getType() == DataTypes.GEOMETRY) { |
162 | 173 |
sqlbuilder.insert().column().name(attr.getName()).with_value( |
163 |
sqlbuilder.parameter(attr.getName()).as_geometry_variable().srs( |
|
164 |
sqlbuilder.parameter().value(attr.getSRS()).as_constant() |
|
165 |
) |
|
174 |
expbuilder.parameter(attr.getName()).as_geometry_variable() |
|
175 |
.srs( |
|
176 |
expbuilder.parameter().value( |
|
177 |
attr.getSRS()).as_constant() |
|
178 |
) |
|
166 | 179 |
); |
167 | 180 |
} else { |
168 | 181 |
sqlbuilder.insert().column().name(attr.getName()).with_value( |
169 |
sqlbuilder.parameter(attr.getName())
|
|
182 |
expbuilder.parameter(attr.getName())
|
|
170 | 183 |
); |
171 | 184 |
} |
172 | 185 |
} |
... | ... | |
181 | 194 |
|
182 | 195 |
PreparedStatement st; |
183 | 196 |
Disposable paramsDisposer; |
197 |
sqlbuilder.setProperties( |
|
198 |
Variable.class, |
|
199 |
PROP_FEATURE_TYPE, type, |
|
200 |
PROP_TABLE, table |
|
201 |
); |
|
184 | 202 |
String sql = sqlbuilder.insert().toString(); |
185 | 203 |
try { |
186 | 204 |
st = conn.prepareStatement(sql); |
... | ... | |
210 | 228 |
FeatureType type |
211 | 229 |
) { |
212 | 230 |
JDBCSQLBuilderBase sqlbuilder = createSQLBuilder(); |
231 |
ExpressionBuilder expbuilder = sqlbuilder.expression(); |
|
213 | 232 |
|
214 | 233 |
sqlbuilder.update().table() |
215 | 234 |
.database(this.table.getDatabase()) |
... | ... | |
218 | 237 |
for (FeatureAttributeDescriptor attr : type) { |
219 | 238 |
if (attr.isPrimaryKey()) { |
220 | 239 |
sqlbuilder.update().where().and( |
221 |
sqlbuilder.eq(
|
|
222 |
sqlbuilder.column(attr.getName()),
|
|
223 |
sqlbuilder.parameter(attr.getName()).as_variable()
|
|
240 |
expbuilder.eq(
|
|
241 |
expbuilder.column(attr.getName()),
|
|
242 |
expbuilder.parameter(attr.getName()).as_variable()
|
|
224 | 243 |
) |
225 | 244 |
); |
226 | 245 |
} if ( ! attr.isAutomatic() && !attr.isReadOnly() ) { |
227 | 246 |
if (attr.getType() == DataTypes.GEOMETRY) { |
228 | 247 |
sqlbuilder.update().column().name(attr.getName()).with_value( |
229 |
sqlbuilder.parameter(attr.getName()).as_geometry_variable().srs(
|
|
230 |
sqlbuilder.parameter().value(attr.getSRS()).as_constant()
|
|
248 |
expbuilder.parameter(attr.getName()).as_geometry_variable().srs(
|
|
249 |
expbuilder.parameter().value(attr.getSRS()).as_constant()
|
|
231 | 250 |
) |
232 | 251 |
); |
233 | 252 |
} else { |
234 | 253 |
sqlbuilder.update().column().name(attr.getName()).with_value( |
235 |
sqlbuilder.parameter(attr.getName()).as_variable()
|
|
254 |
expbuilder.parameter(attr.getName()).as_variable()
|
|
236 | 255 |
); |
237 | 256 |
} |
238 | 257 |
} |
... | ... | |
252 | 271 |
|
253 | 272 |
PreparedStatement st = null; |
254 | 273 |
Disposable paramsDisposer = null; |
274 |
sqlbuilder.setProperties( |
|
275 |
Variable.class, |
|
276 |
PROP_FEATURE_TYPE, type, |
|
277 |
PROP_TABLE, table |
|
278 |
); |
|
255 | 279 |
String sql = sqlbuilder.update().toString(); |
256 | 280 |
try { |
257 | 281 |
st = conn.prepareStatement(sql); |
... | ... | |
347 | 371 |
} |
348 | 372 |
} |
349 | 373 |
} |
374 |
sqlbuilder.setProperties( |
|
375 |
Variable.class, |
|
376 |
PROP_TABLE, table |
|
377 |
); |
|
350 | 378 |
return sqlbuilder.alter_table().toStrings(); |
351 | 379 |
} |
352 | 380 |
|
... | ... | |
421 | 449 |
.database(this.table.getDatabase()) |
422 | 450 |
.schema(this.table.getSchema()) |
423 | 451 |
.name(this.table.getTable()); |
452 |
sqlbuilder.setProperties( |
|
453 |
Variable.class, |
|
454 |
PROP_TABLE, table |
|
455 |
); |
|
424 | 456 |
sqls.addAll(sqlbuilder.create_index().toStrings()); |
425 | 457 |
} |
426 | 458 |
} |
Also available in: Unified diff