mybatis查询数据返回结果集为null,mybatis查询结果为null
00-1010resultType返回空结果。sql语句大致如下。有以下几种解决方案:ResultType获取结果,有些有价值,有些为空。原因配置如下
目录
resultType返回结果为null的问题
select id= findffinancialproductconfiglist result type= com . XXX . financialproductconfigdto select include refid= Base _ Column _ List /From FSC _ XXX其中.WheelerResultType返回的FinancialProductConfigDTO类,属性名都以hump的形式命名,如financialProductConfigId;相应数据库表中的字段带有下划线,例如financial_product_config_id。
结果,返回的结果都是null,SQL被打印出来,记录也确实找到了。所以确定是结果集和返回类型之间的字段映射问题。
我一直以为Mybatis会自动把数据库的下划线字段转换成POJO类(resultType对应的类)的驼峰属性字段,但是我发现我错了。这个Mybatis默认不会自动转换,所以返回的结果是null,特此记录。
00-1010 1.当选择字段时,将别名添加到数据库的带下划线的字段,并将其更改为相应的驼峰状属性字段,例如:
select _ product _ config _ id as financialProductConfigID 2。不使用resultType,而是使用resultMap来匹配带下划线的字段和驼峰字段。
3.使Mybatis的mapUnderscoreToCamelCase为true,这样就可以自动将数据库的下划线字段映射到POJO类的驼峰形式。
00-1010服务地址框架:弹簧靴
00-1010 mybatis hump命名规则未配置,返回的结果类型为resultType。
sql语句大致如下
bean.getObject()。getConfiguration()。setMapUnderscoreToCamelCase(true);@ Bean(name= sqlSessionFactory )public sqlSessionFactory sqlSessionFactoryBean(@ Qualifier( data source )data source){ sqlSessionFactoryBean Bean=new sqlSessionFactoryBean();请尝试{ bean.getObject()。getConfiguration()。setMapUnderscoreToCamelCase(true);返回bean . getobject();} catch(Exception e){ e . printstacktrace();抛出新的runtime exception(e);}}以上是我的亲身经历。希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。