MyBatis 接口绑定

作用:实现创建一个接口后,把mapper.xml变成由mybatis生成接口的实现类,通过调用接口对象就可以获取 mapper.xml中编写的 sql.

后面 mybatis 和 spring 整合时使用的是这个方案.

  • 实现步骤:

    • 创建一个接口
    • 接口包名和接口名与 mapper.xml 中<- mapper>namespace相同
    • 接口中方法名和 mapper.xml 标签的 id 属性要报持相同
    • 在 mybatis.xml 中使用<-package>进行扫描接口和 mapper.xml
  • 代码实现步骤:

    • 在 mybatis.xml 中<-mappers>下使用<-package>

    • 创建一个接口,接口包名和接口名与 mapper.xml 中namespace相同。接口中方法名和 mapper.xml 标签的 id 属性相同

    • 创建xml文件,获取参数,编写sql namespace 必须和接口全限定路径(包名+类名)一致。id值必须和接口中方法名相同,使用接口绑定可以省略parameterType

    • 通过session.getMapper(接口类对象);创建了一个实现接口类,并将它实例化,之后调用相应的方法

  • 多参数实现方法–#{角标}

    • 前面步骤一样,创建接口,创建方法,mybatis配置文件中使用<-package>进行扫描接口和xml文件

    • namespace 必须和接口全限定路径(包名+类名)一致。id值必须和接口中方法名相同

    • 使用#{角标}获取参数,从零开始,0代表第一个参数,以此类推

      • 通过session.getMapper(接口类对象);创建了一个实现接口类,并将它实例化,之后调用相应的方法

  • 多参数实现方法–注解

    • 前面步骤一样,创建接口,创建方法,mybatis配置文件中使用<-package>进行扫描接口和xml文件

    • 通过@Param注解获取参数, mybatis 把参数转换为 map 了,其中@Param(“key”)参数内容就是 map 的 value,使用动态sql时可以使用此方法

      • 通过注解把参数转换成了map对象,获取参数就变成了通过#{键}来获取参数内容
      • 通过session.getMapper(接口类对象);创建了一个实现接口类,并将它实例化,之后调用相应的方法