小疯在使用mybatis时,遇到了一个问题就是,使用char类型字段做为查询条件时一直都查不出数据,其余类型的则能够。java
使用的数据库是oracle,查询条件字段类型是char(50),java代码对应的是String类型。数据库
后来通过排查,是因为在oracle中,char类型字段,若是内容长度不够,会自动以空格方式补足长度。如字段 name char(5),若值为sgl,那么oracle会自动用空格补足长度,最终值为sgl。mybatis
1、解决方法:oracle
方法1:先用trim()函数把值去掉两边空格再做为条件查询函数
方法2:将字段类型char()改成varchar2()类型。通常状况下,只有全部值长度都同样时才用char()类型,好比性别字段,用0表示男和1表示女时,就能够用char(1),若是值的长度不固定,有长有短,最好别用char()类型。spa
小疯是由于工做上的缘由使用了方法一方法