MyBatis增加时报错“无效的列类型”

以一下是Insert的SQL语句增加时报错“无效的列类型”,也没用说是哪个属性,真的痛苦。

INSERT INTO SCOTT.PM_SUPPLIER (
	SUPPLIER_ID,
	SUPPLIER_CODE,
	SUPPLIER_NAME,
	BRAND_ID,
	BRAND_NAME,
	CONTACTOR,
	TELEPHONE,
	MOBILE,
	POST_CODE,
	FAX,
	EMAIL,
	ADDRESS,
	REMARK,
	DELETE_FLG,
	CREATE_USER,
	CREATE_TIME,
	UPDATE_USER,
	UPDATE_TIME,
	USE_FLG,
	QQ,
	COOPERATION_START_TIME,
	REGISTERED_CAPITAL,
	DEPUTY,
	IDENTITY_CARD,
	OBJECT_APTITUDE,
	ORG_CODE,
	TAX_REGISTRATION,
	SUPPLIER_TYPE,
	PROP_TYPE,
	ACCOUNT_NAME,
	DEPOSIT,
	ACCOUNT_NO,
	PROJECT_TYPE,
	DISCOUNT_RATE,
	SUPPLIER_SAP_CODE,
	TAX_RATE
)
VALUES
	(
		SUPPLIER_ID.nextval,
		# { supplierCode }, # { supplierName }, # { brandId }, # { brandName }, # { contactor }, # { telephone }, # { mobile }, # { postCode }, # { fax }, # { email }, # { address }, # { remark }, '0',
		'系统管理员(寐)',
		TO_DATE (
			'2014-12-17 10:35:32',
			'SYYYY-MM-DD HH24:MI:SS'
		),
		'admin',
		TO_DATE (
			'2015-01-28 14:23:54',
			'SYYYY-MM-DD HH24:MI:SS'
		),
		'0',
		# { qq }, NULL,
		# { registeredCapital }, # { deputy }, # { identityCard }, # { objectAptitude }, # { orgCode }, # { taxRegistration }, '1',
		# { propType }, # { accountName }, # { deposit }, # { accountNo }, # { projectType }, # { discountRate,
		jdbcType = NUMERIC }, # { supplierSapCode }, # { taxRate }
	)

报错原因

       上面SQL语句中的倒数第三个属性discountRate,在Oracle中的类型是NUMBER,在jsp使用对象去收集增加的数据时(discountRate)单词打错了,所有导致没用值,默认就为NULL了,而在Oracle中是number类型,添加一个NULL就不行了,所有指定它是number类型,即便是没收集到数据也是number类型的默认值。

注意:input标签中使用disabled=“disabled”,通过request.getParameter("name")得不到文本框中的内容,也会出现空的情况。

解决方法:

     指定它是NUMBER类型

     #{discountRate,jdbcType=NUMBER}

    更恶心的是MyBatis中对应的不是NUMBER是NUMERIC

    所以正确的写法是

    #{discountRate,jdbcType=NUMERIC}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值