Mybatis与Spring的mapper代理整合方法

1、配置环境

2、UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离 
注意:使用mapper代理方法开发,namespace有特殊重要的作用
-->
<mapper namespace="cn.byr.ssm.mapper.UserMapper">

    <!-- 在 映射文件中配置很多sql语句 -->
    <!-- 需求:通过id查询用户表的记录 -->
    <!-- 通过 select执行数据库查询
    id:标识 映射文件中的 sql
    将sql语句封装到mappedStatement对象中,所以将id称为statement的id
    parameterType:指定输入 参数的类型,这里指定int型 
    #{}表示一个占位符号
    #{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称
    
    resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。
     -->
    <select id="findUserByLoginname" parameterType="String" resultType="cn.byr.ssm.po.User">
        SELECT * FROM t_user WHERE loginname=#{value}
    </select>
    
    
</mapper>

3、UserMapper接口文件

package cn.byr.ssm.mapper;

import cn.byr.ssm.po.User;

public interface UserMapper {
    //根据用户名查询用户信息
    public User findUserByLoginname(String loginname) throws Exception;
}

4、applicationContext.xml文件加入

  <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <property name="mapperInterface" value="cn.byr.ssm.mapper.UserMapper"></property>
        <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
    </bean>

5、测试

 6、改进一下 使用spring的mapper扫描器

    使用mapper扫描器
    此方法即mapper接口开发方法,只需定义mapper接口,不用编写mapper接口实现类。只需要在spring配置文件中定义一个mapper扫描器,自动扫描包中的mapper接口生成代代理对象。

1、    mapper.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>
basePackage:扫描包路径,中间可以用逗号或分号分隔定义多个包
4、    使用扫描器后从spring容器中获取mapper的实现对象
       如果将mapper.xml和mapper接口的名称保持一致且放在一个目录 则不用在sqlMapConfig.xml中进行配置

1.1.1  使用mapper扫描器

         此方法即mapper接口开发方法,只需定义mapper接口,不用编写mapper接口实现类。只需要在spring配置文件中定义一个mapper扫描器,自动扫描包中的mapper接口生成代代理对象。

 

1、  mapper.xml文件编写,

 

2、  定义mapper接口

 

注意mapper.xml的文件名和mapper的接口名称保持一致,且放在同一个目录

 

3、  配置mapper扫描器

<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">

 <property name="basePackage" value="mapper接口包地址"></property>

<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>

    </bean>

basePackage:扫描包路径,中间可以用逗号或分号分隔定义多个包

4、  使用扫描器后从spring容器中获取mapper的实现对象

 

         如果将mapper.xmlmapper接口的名称保持一致且放在一个目录则不用在sqlMapConfig.xml中进行配置

 

原文地址:https://www.cnblogs.com/xiaoying1245970347/p/4932463.html