关于mybatis的一些注意点

1.关于xml文件的mapper下有子文件夹加载的问题,访问控制器方法会提示localhost 拒绝了我们的连接请求。

  解决方法:在application.properties配置中修改mybatis.mapper-locations的参数,例如改为: 

  mybatis.mapper-locations=classpath:mapper/*.xml,classpath:mapper/module/**/*.xml,classpath:mapper/frame/**/*.xml

  这样写就表示会加载mapper根目录、mapper/module目录、mapper/frame目录下的所有xml文件;

2.SQL语句中的特殊转移符:
  如果直接写: select * from user where id <> 217;mybatis就会报语法错误,<>特殊字符需要转义,如下

  select * from user where id &lt;&gt; 217;

  使用Mybatis的时候,特殊字符需进行转义,如
  &lt;&gt; <>
  &amp; &
  &apos; '
  &quot;

3.Mybatis允许返回null值的字段:

在application.properties配置文件添加以下信息即可返回null值的字段;
mybatis.configuration.call-setters-on-nulls=true

4.关于日期的格式化:
如果通过mybatis返回的日期类型,再通过FastJson直接toJSONString转换的话,会直接按整数输出,这个并不是我想要的结果;
日期类型我只想要2种格式的,一种是 yyyy-MM-dd,另一种是 yyyy-MM-dd hh:mm:ss,但大多数都是yyyy-MM-dd的字段,少数
是yyyy-MM-dd hh:mm:ss格式,为此我们可以这样做,在mybatis的mapper配置文件中这样写sql语句:
select convert(varchar(19),crdate,20) as crdate --只针对yyyy-MM-dd hh:mm:ss格式的字段内转换;

然后把返回的List<Map>使用以下方法来转成json格式:
json = JSON.toJSONStringWithDateFormat(
lsmap,
"yyyy-MM-dd",
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteNullBooleanAsFalse,
SerializerFeature.WriteDateUseDateFormat
);
这样默认所有日期格式会转为yyy-MM-dd格式,因为类似crdate这样的字段已经在sql里转为了字符串格式,所以不受DateFormat影响;

 










 

原文地址:https://www.cnblogs.com/lpq21314/p/14629043.html