Mybatis框架--Ibatis框架踩坑01 -- Java中BigInteger类型字段问题!

288 篇文章 0 订阅
27 篇文章 0 订阅

 

       在Mybatis框架、 Ibatis框架中, 不支持Java中的 java.math.BigInteger 类型字段, 支持 java.math.BigDecimal 类型字段。若Java实体类中,使用 java.math.BigInteger 类型字段,在使用 Mybatis、Ibatis框架进行数据处理时,会报错。

 

        Mybatis中文在线网中介绍的Mybatis支持的数据类型与Java数据类型对应关系网址: Mybatis 3|配置 -- XML配置 

在下图所示部位,可以找到Mybatis中支持的数据类型与Java中数据类型对应关系。

 

 

 

       在我开发过程中,与公司老员工交流过程中,兵哥建议我,Mysql中数据类型为 BigInteger、BigDecimal 的字段,Java中的属性使用 java.lang.Long、 java.lang.Integer、 java.lang.Dubbo、java.lang.Short  的数据类型定义。

 

       在开发过程中,当我使用 Java.math.BigInteger数据类型时,Ibatis/Mybatis框架log日志报错内容如下所示。其中,prodAttrValueId属性采用Java中的 java.math.BigInteger 数据类型定义。     

 

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: org.springframework.beans.factory.BeanCreationException: 

Error creating bean with name 'prodAttrService' defined in class path resource [applicationContext.xml]: 
	Cannot resolve reference to bean 'prodAttrDao' while setting bean property 'prodAttrDao'; 
	nested exception is org.springframework.beans.factory.BeanCreationException: 
	Error creating bean with name 'prodAttrDao' defined in class path resource [applicationContext.xml]: 
	Cannot resolve reference to bean 'sqlMapClient' while setting bean property 'sqlMapClient'; 
	nested exception is org.springframework.beans.factory.BeanCreationException: 
	Error creating bean with name 'sqlMapClient' defined in class path resource [applicationContext.xml]: 

Invocation of init method failed; 
nested exception is org.springframework.core.NestedIOException: 
Failed to parse config resource: class path resource [sqlMapConfig.xml]; 
nested exception is com.ibatis.common.xml.NodeletException: Error parsing XML.  
Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  
Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  
Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'.  
Cause: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'prodAttrValueId' in class 'java.math.BigInteger'

	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
	at com.web.asiainfo.main.ProductRun.<clinit>(ProductRun.java:29)
	
	
	
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'prodAttrDao' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'sqlMapClient' while setting bean property 'sqlMapClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [sqlMapConfig.xml]; nested exception is com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'.  Cause: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'prodAttrValueId' in class 'java.math.BigInteger'
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
	... 15 more



 

举一个简单的例子:

    Java实体类

 

 

 

 未完待续.........................

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值