mybatis-plus中自动配置的 mapper.xml与java接口映射问题

mybatis-plus的自动配置类MybatisPlusAutoConfiguration包含静态内部类MapperScannerRegistrarNotFoundConfiguration,该类借助AutoConfiguredMapperScannerRegistrar进行Mapper接口与XML的映射配置。核心功能依赖于ClassPathMapperScanner,它会在指定包下扫描带有Mapper注解的接口,并将这些接口与XML映射文件关联。若使用mybatis-plus自动配置,Dao接口必须加上Mapper注解。
摘要由CSDN通过智能技术生成

本来没有mybatis-plus的话,这个工作是通过mybatis-spring的MapperScan来完成的。

Mybatis-plus中的自动配置类MybatisPlusAutoConfiguration.class中有一个静态内部类MapperScannerRegistrarNotFoundConfiguration用于完成这个配置。
这里写图片描述

这个内部类导入了AutoConfiguredMapperScannerRegistrar.class配置类,其实这个配置类也是MybatisPlusAutoConfiguration的静态内部类。
其中核心功能就是下面这个方法
这里写图片描述

通过ClassPathMapperScanner 来扫描包,用于完成映射,ClassPathMapperScanner 是mybatis-spring中的配置类

ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry);

如果用Mybatis-plus的自动配置,那么所有的Dao接口必须要用Mapper.class注解,因为Mybatis-plus设置的就为Mapper.class

### 回答1: Mybatis-plusxml写法是指在Mybatis-plus框架使用xml文件来编写SQL语句。具体写法如下: 1. 创建一个Mapper接口,继承BaseMapper接口。 2. 在Mapper接口定义需要执行的SQL语句,使用@Select、@Insert、@Update、@Delete等注解来标识。 3. 在resources目录下创建一个与Mapper接口同名的xml文件,用于编写SQL语句。 4. 在xml文件使用<select>、<insert>、<update>、<delete>等标签来编写SQL语句。 5. 在xml文件使用${}或#{}来引用Mapper接口定义的参数。 6. 在Mybatis-plus配置文件配置Mapper接口的扫描路径和xml文件的扫描路径。 7. 在代码使用@Autowired注解来注入Mapper接口,即可使用xml文件编写的SQL语句。 以上就是Mybatis-plusxml写法的基本流程。 ### 回答2: Mybatis-Plus是基于Mybatis的加强工具,提供了很多方便开发的功能,其就包括了XML方式的CRUD,以下是XML的写法: 1. 映射文件位置:在Mybatis-Plus映射文件的位置需要遵循Mybatis的规则,即放在classpath下的某个包。 2. 命名规范:Mybatis-Plus的命名规范可以参照Mybatis的规范,在命名上加上模块名的前缀,例如user.xml,order.xml等。 3. SQL语句:Mybatis-Plus可以像Mybatis一样使用XML编写SQL语句,只不过在SQL语句的编写上会更加简洁,例如: ```xml <!--查询用户列表--> <select id="selectList" resultType="java.util.List"> select * from user </select> ``` 4. 参数传递:Mybatis-Plus的参数传递可以采用占位符的方式,例如: ```xml <!--查询用户信息--> <select id="selectById" parameterType="java.lang.Long" resultType="com.example.demo.entity.User"> select * from user where id = #{id} </select> ``` 5. 分页查询:Mybatis-Plus支持分页查询,只需要在SQL语句加上limit和offset即可,例如: ```xml <!--分页查询用户列表--> <select id="selectPage" parameterType="com.baomidou.mybatisplus.extension.plugins.pagination.Page" resultType="java.util.List"> select * from user limit #{page.offset}, #{page.size} </select> ``` 6. 注解方式:除了XML方式,Mybatis-Plus还支持注解方式,例如: ```java @Select("select * from user where id = #{id}") User selectById(Long id); ``` 总的来说,Mybatis-PlusXML写法和Mybatis基本相似,但是在一些简单的查询上能够更加简洁明了。同时,Mybatis-Plus也提供了其他方便开发的功能,例如代码生成器、分页插件等,使得开发变得更加高效。 ### 回答3: Mybatis-Plus是基于Mybatis的增强工具,为开发者提供了更加便捷的CRUD操作。其Mybatis-Plus对于XML文件的使用也进行了优化,主要表现在以下方面。 XML的写法: Mybatis-PlusXML与传统的MybatisXML有相似之处,但也有不同点,下面是一个简单的例子: ``` <!--mybatis-plusXML配置--> <resultMap type="com.baomidou.mybatisplus.samples.quickstart.entity.User" id="userMap"> <result column="id" property="id" jdbcType="BIGINT"/> <result column="name" property="name" jdbcType="VARCHAR"/> <result column="age" property="age" jdbcType="INTEGER"/> <result column="email" property="email" jdbcType="VARCHAR"/> <result column="status" property="status" jdbcType="INTEGER"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> </resultMap> <select id="selectUser" resultMap="userMap" parameterType="com.baomidou.mybatisplus.samples.quickstart.entity.User"> SELECT * FROM USER WHERE ID=#{id} </select> ``` 以上代码部分展示了Mybatis-PlusXML配置方式。其,resultMap的配置Mybatis基本相同,但是在select标签上有所不同的地方,其: 1. id:与Mybatis相同,表示该sql语句的id,调用时需要根据该id进行调用。 2. parameterType:表示该sql语句的参数类型,这里使用了实体类User。 3. resultMap:表示该sql语句查询结果的映射,指定了resultMap的id值。 此外,Mybatis-Plus还支持一些其他的写法,如Wrapper和Lambda写法等,可以更方便的进行复杂的查询操作。同时,Mybatis-Plus也提供了一些注解方式的写法,这个会在注解的使用进行介绍。 总的来说,Mybatis-PlusXML写法基本与Mybatis相同,同时在使用上也做出了优化,提高了开发的效率,同时也兼顾了Mybatis的灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值