【发布时间】:2015-06-11 18:22:25
【问题描述】:
我目前有一个带有标记空值的字符串通配符返回的 sql 字符串。我正在尝试找到一种将所有这些通配符值设置为 null 的方法。环顾四周后,我发现了一个preparedStatement.setNull() 方法,但是它需要一个索引,并且通配符的索引会发生变化。有没有办法克服这个问题? (下面给出的示例 sql 字符串):
String sqlCmd=
"INSERT INTO gs_support_structure (OBJECTID, gs_support_structure_gs_guid,
gs_support_structure_gs_vc_revision, gs_support_structure_gs_old_objectid,
gs_support_structure_gs_symbol_rotation, gs_support_structure_gs_subtype_cd,
gs_support_structure_gs_equipment_location, gs_support_structure_gs_map_no,
gs_support_structure_gs_substation, gs_support_structure_gs_description,
gs_support_structure_gs_height, gs_support_structure_gs_class,
gs_support_structure_gs_installation_date, gs_support_structure_gs_comments,
gs_support_structure_gs_date_created, gs_support_structure_gs_date_modified,
gs_support_structure_gs_diameter, gs_support_structure_gs_foundation_type,
gs_support_structure_gs_grounded, gs_support_structure_gs_manufacturer,
gs_support_structure_gs_material, gs_support_structure_gs_owner,
gs_support_structure_gs_pole_count, gs_support_structure_gs_style,
gs_support_structure_gs_treatment_type, gs_support_structure_gs_usage_type,
gs_support_structure_gs_old_layer_name,
gs_support_structure_gs_year_manufactured, gs_support_structure_gs_obj_no,
gs_support_structure_gs_prev_pole_id, gs_support_structure_gs_feeder_number,
gs_support_structure_gs_bec_substation,
gs_support_structure_gs_line_section, gs_support_structure_gs_facility_id,
gs_support_structure_gs_work_initiation_id,
gs_support_structure_gs_height_estimated,
gs_support_structure_gs_double_wood, gs_support_structure_gs_damaged,
gs_support_structure_gs_image_number, gs_support_structure_gs_x_coordinate,
gs_support_structure_gs_y_coordinate, gs_support_structure_gs_latitude,
gs_support_structure_gs_longitude, gs_support_structure_gs_gps_type,
gs_support_structure_gs_quality_value_meters,
gs_support_structure_gs_elevation_meters,
gs_support_structure_gs_construction_unit, gs_support_structure_gs_tag,
gs_support_structure_gs_tag_placed, gs_support_structure_gs_oldattachpole,
gs_support_structure_gs_poletopped, gs_support_structure_gs_polehazard,
gs_support_structure_gs_raptor, gs_support_structure_gs_groundpresent,
gs_support_structure_gs_test, gs_support_structure_gs_gpsdate,
gs_support_structure_gs_gpstime, gs_support_structure_gs_sriid,
gs_support_structure_gs_vc_modified_sw,
gs_support_structure_gs_ju_attached_fi,
gs_support_structure_gs_related_staking_guid,
gs_support_structure_gs_hyperlink, gs_display_feature_name, gs_guid) VALUES
('227', '{20731926-2A46-CDAC-547C-71226454977D}', '1099', '12202', '0.0',
'1', '1812', '571871874801', '9', ?, '40', '6', ?, ?, 'Thu Feb 25 17:25:19
CST 2010', 'Mon Feb 13 12:19:34 CST 2012', ?, ?, ?, ?, 'WOOD', 'BARTLETT',
?, ?, ?, 'PRI', ?, 'UNK', ?, ?, '03', 'Salty', ?, '1812', ?, 'Y', 'N', 'N',
?, '3293532.68888944', '1.021396693284668E7', '30.64895755', '-97.16239132',
?, ?, ?, ?, '106382', 'Y', 'N', 'N', 'NONE', 'NONE', 'Y', 'UNK', 'Fri Sep 04
00:00:00 CDT 2009', 'Sat Dec 30 10:24:13 CST 1899', '1812', ?, 'N', ?, ?,
'gs_support_structure', '{D63C9735-4632-7E71-726C-3248E8B25E44}')"
PreparedStatement preparedStatement =
spatialLiteConnection.prepareStatement(sqlCmd);
preparedStatement.execute();
JdbcUtil.close(preparedStatement);
【问题讨论】:
-
你能解释一下“通配符索引是如何变化的”吗?
-
对不起,如果我不清楚。当您调用preparedStatement.setNull() 时,您需要传递?您想在其中设置为空。我的空值出现在不同的地方。即:有时第一个值是?有时第一个值将是实际值
-
典型的 JDBC 不起作用是有原因的吗? (例如:ps.setInt(1, int)); ps.setString(2, String); 等
标签: java sql prepared-statement wildcard