1、list中的map,key是mysql中的列名,值是对应的值
2、sql中,如果实体类和mysql中的字段名一样,就不用改了,如果不一样,就用 字段名 as 实体类中的变量名 来将数据放进实体中
List<Map<String, Object>> result = jdbcTemplate.queryForList(SQL);
List<CodeCountryDataEntity> rs = null;
try {
if (result != null && !result.isEmpty()) {
rs = new ArrayList<CodeCountryDataEntity>();
for (Map<String, Object> data : result) {
CodeCountryDataEntity codeCountryDataEntity = new CodeCountryDataEntity();
// map to bean
BeanUtils.populate(codeCountryDataEntity, data);
rs.add(codeCountryDataEntity);
}
return rs;
}
3、sql可以用String的replace()方法来将值放入sql中
private static final String SQL_QUERY_BATCHCONTROL_ID_CONTROLFILE="SELECT userid as userId,batchid as batchId,controlfile as controlFile,datakind as dataKind FROM e_batch_control "
+ "WHERE batchid>={batchid_start} AND batchid<={batchid_end} AND (controlfile LIKE '%{controlFileFirst}%' OR controlfile LIKE '%{controlFileSecond}%')";
SQL_QUERY_BATCHCONTROL_ID_CONTROLFILE.replace("{batchid_start}", String.valueOf(batchIdStart)).replace("{batchid_end}", String.valueOf(batchIdEnd)).replace("{controlFileFirst}", controlFileFirst).replace("{controlFileSecond}", controlFileSecond)
4、或者使用?占位符,将值set进去
private static final String SQL_UPDATE_BATCHCONTROL_ENDTIME_HYBASESTEP_IMPSTATUS="update e_batch_control set begintime=NULL,endtime=NULL , hybase_step=NULL,impstatus=? "
+ "where batchid=? ";
jdbcTemplate.update(SQL_UPDATE_BATCHCONTROL_ENDTIME_HYBASESTEP_IMPSTATUS,new Object[]{impStatus,batchId});