ORM框架-MyBatis使用经验总结

  1. 使用Spring-Mybatis工具包,使用基于接口的映射器;
  2. 复杂的数据结构使用XML配置映射语句;简单的SQL语句建议直接使用Java注解来编写映射语句;
  3. 使用@Param对接口参数添加注解,将面向SQL的参数名和面向应用程序的参数名解耦;
  4. 禁用或者慎用Map类型的接口参数,当参数数量超过一定数量(如:5)时,建议使用Java类封装参数;
  5. 建议使用ResultMap映射结果集;禁止直接使用Map返回查询结果,使用Map返回查询结果不利于不同层级的代码之间的解耦,并且严重降低了修改程序的灵活性;
  6. 慎用级联查询功能(association,collection),当一次查询数据量非常大时,会严重影响程序的查询性能(数据库N+1查询导致),嵌套级联层层次越深查询效率越低;建议一次查询出所有Table中的数据,然后在内存中组织数据。数据数据是按照联合主键的顺序组织的,那么推荐使用Java8的流处理语法可以写出非常简洁优美的代码;