torlee 发表于 2016-11-26 05:57:02

使用mybatis遇到的问题

  在使用mybatis时,编写sqlmap脚本的时候,有时候会遇到很奇怪的问题:
  比如:

#{imei,jdbcType=VARCHAR} as IMEI,
  如果写成如下的方式,即在等于号两边有空格的话,就会报错。

#{imei,jdbcType = VARCHAR} as IMEI,
  特此mark一下,留做纪念!

merge into DMS_MULTI_TASK_RESULT m
using (select #{taskId,jdbcType=NUMERIC} as TASK_ID,
#{subPolicyId,jdbcType=NUMERIC} as SUB_POLICY_ID,
#{msisdn,jdbcType=VARCHAR} as MSISDN,
#{manuId,jdbcType=NUMERIC} as MANU_ID,
#{modelId,jdbcType=NUMERIC} as MODEL_ID,
#{imei,jdbcType=VARCHAR} as IMEI,
#{swVersion,jdbcType=VARCHAR} as SW_VERSION,
#{pkgId,jdbcType=NUMERIC} as PKG_ID,
#{operation,jdbcType=NUMERIC} as OPERATION,
#{startTime,jdbcType=TIMESTAMP} as START_TIME,
#{endTime,jdbcType=TIMESTAMP} as END_TIME,
#{result,jdbcType=NUMERIC} as RESULT,
#{status,jdbcType=NUMERIC} as STATUS,
#{description,jdbcType=VARCHAR} as DESCRIPTION,
#{reportStatus,jdbcType=NUMERIC} as REPORT_STATUS,
#{readerStep,jdbcType=NUMERIC} as READER_STEP,
SYSDATE as INSERT_TIME,
#{provId,jdbcType=NUMERIC} as PROV_ID,
#{cityId,jdbcType=NUMERIC} as CITY_ID
from dual) n
on (m.task_id = n.task_id)
when not matched then
insert
(TASK_ID,
SUB_POLICY_ID,
MSISDN,
MANU_ID,
MODEL_ID,
IMEI,
SW_VERSION,
PKG_ID,
OPERATION,
START_TIME,
END_TIME,
RESULT,
STATUS,
DESCRIPTION,
REPORT_STATUS,
READER_STEP,
INSERT_TIME,
PROV_ID,
CITY_ID)
values
(n.TASK_ID,
n.SUB_POLICY_ID,
n.MSISDN,
n.MANU_ID,
n.MODEL_ID,
n.IMEI,
n.SW_VERSION,
n.PKG_ID,
n.OPERATION,
n.START_TIME,
n.END_TIME,
n.RESULT,
n.STATUS,
n.DESCRIPTION,
n.REPORT_STATUS,
n.READER_STEP,
n.INSERT_TIME,
n.PROV_ID,
n.CITY_ID)
when matched then
update
set m.SUB_POLICY_ID = n.SUB_POLICY_ID,
m.MSISDN      = n.MSISDN,
m.MANU_ID       = n.MANU_ID,
m.MODEL_ID      = n.MODEL_ID,
m.IMEI          = n.IMEI,
m.SW_VERSION    = n.SW_VERSION,
m.PKG_ID      = n.PKG_ID,
m.OPERATION   = n.OPERATION,
m.START_TIME    = n.START_TIME,
m.END_TIME      = n.END_TIME,
m.RESULT      = n.RESULT,
m.STATUS      = n.STATUS,
m.DESCRIPTION   = n.DESCRIPTION,
m.REPORT_STATUS = n.REPORT_STATUS,
m.READER_STEP   = n.READER_STEP,
m.INSERT_TIME   = n.INSERT_TIME,
m.PROV_ID       = n.PROV_ID,
m.CITY_ID       = n.CITY_ID
  
页: [1]
查看完整版本: 使用mybatis遇到的问题