Skip to content
目录概览

Mapper编写有哪几种方式?

  • 第一种:接口实现类继承SqlSessionDaoSupport;使用此种方法需要编写mapper接口,mapper接口实现类、mapper.xml文件。

    1. 在sqlMapConfig.xml中配置mapper.xml的位置
       <mappers>
         <mapper resource="mapper.xml文件的地址" />
         <mapper resource="mapper.xml文件的地址" />
       </mappers>
      
      1
      2
      3
      4
    2. 定义mapper接口
    3. 实现类集成SqlSessionDaoSupport mapper方法中可以this.getSqlSession()进行数据增删改查。
    4. spring 配置
      <bean id=" " class="mapper接口的实现">
         <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
      </bean> 
      
      1
      2
      3
  • 第二种:使用org.mybatis.spring.mapper.MapperFactoryBean:

    1. 在sqlMapConfig.xml中配置mapper.xml的位置,如果mapper.xml和mappre接口的名称相同且在同一个目录,这里可以不用配置
       <mappers>
         <mapper resource="mapper.xml文件的地址" />
         <mapper resource="mapper.xml文件的地址" />
       </mappers>
      
      1
      2
      3
      4
    2. 定义mapper接口:
      • mapper.xml中的namespace为mapper接口的地址
      • mapper接口中的方法名和mapper.xml中的定义的statement的id保持一致
      • Spring中定义
        <bean id="" class="org.mybatis.spring.mapper.MapperFactoryBean">
          <property name="mapperInterface"  value="mapper接口地址" /> 
          <property name="sqlSessionFactory" ref="sqlSessionFactory" />
        </bean>
        
        1
        2
        3
        4
  • 第三种:使用mapper扫描器:

    1. mapper.xml文件编写: mapper.xml中的namespace为mapper接口的地址; mapper接口中的方法名和mapper.xml中的定义的statement的id保持一致; 如果将mapper.xml和mapper接口的名称保持一致则不用在sqlMapConfig.xml中进行配置。
    2. 定义mapper接口: 注意mapper.xml的文件名和mapper的接口名称保持一致,且放在同一个目录
    3. 配置mapper扫描器:
       <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
         <property name="basePackage" value="mapper接口包地址"></property>
         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> 
       </bean>
      
      1
      2
      3
      4
    4. 使用扫描器后从spring容器中获取mapper的实现对象。