iBatis插入对象属性值为空时报错。

使用iBatis的时候,插入数据的时候,当对象的某个属性值为空值的时候,会报错(错误不统一(将截断字符串或二进制数据、))。

解决途径:

INSERT INTO TMCS_ORPUDO (
			POLICY_NO,STATUS,INSURED_BEGIN_DATE,RISK_CODE,PAY_MODE,
			PAY_YEARS,YEARS,APPLY_CODE,PAY_TO_DATE,MODE_PREMIUM,
			BASE_PREMIUM,SUNDRY_AMOUNT,INPUT_DATE,
			CHANNEL_CODE,CHANNEL_CODE2,CHANNEL_CODE3,CHANNEL_CODE4,SPONSOR_CODE,CITY_CODE,REVISIT_FLAG,REVISIT_DATE,
			CAMPAIGN_CODE,ORDER_NO,PACKAGE_CODE,PACKAGE_NAME,SIGN_DATE,IS_V_TYPE,
			APPLY_NAME,AGENT_CODE,BANK_STAFF_CODE,OPERATE_STATUS,BATCH_NO,BATCH_NO_TOLOCATE,CREATE_BY,CREATE_DATE
		)
		VALUES
		(
			#policyNo:VARCHAR#,
			#status:VARCHAR#,
			#insuredBeginDate:DATE#,
			#riskCode:VARCHAR#,
			#payMode#,
			#payYears#,
			#years#,
			#applyCode:VARCHAR#,
			#payToDate:DATE#,
			#modePremium#,
			#basePremium#,
			#sundryAmount#,
			#inputDate:DATE#,
			#channelCode:VARCHAR#,
			#channelCode2:VARCHAR#,
			#channelCode3:VARCHAR#,
			#channelCode4:VARCHAR#,
			#sponsorCode:VARCHAR#,
			#cityCode:VARCHAR#,
			#revisitFlag:VARCHAR#,
			#revisitDate:DATE#,
			#campaignCode:VARCHAR#,
			#orderNo:VARCHAR#,
			#packageCode:VARCHAR#,
			#packageName:VARCHAR#,
			#signDate:DATE#,
			#isVtype:VARCHAR#,
			#applyName:VARCHAR#,
			#agentCode:VARCHAR#,
			#bankStaffCode:VARCHAR#,
			'0',
			#batchNo:VARCHAR#,CONVERT(varchar(100), GETDATE(), 112),'system',GETDATE()
		)
在对象的属性的后面加上对应的数据类型。

结果有多个这样的插入数据,导致大量重复的工作量,并且以后维护起来相当复杂。

后面在网上找,发现对于myBatis3的可以在myBatis配置增加<setting>属性  jdbcTypeForNull="OTHER" ,但是对于iBatis2并没有设置这个属性。

记下来防止忘记。

参考文档点击打开链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值