参考:mybatis-plus使用xml自定义sql语句
详解mybatis-plus的 mapper.xml 路径配置的坑

第一步:定义Mapper方法

  1. package com.tj.demo.system.mapper;
  2. import com.tj.demo.system.domain.Elicon;
  3. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4. /**
  5. * @Entity com.tj.demo.system.domain.Elicon
  6. */
  7. public interface EliconMapper extends BaseMapper<Elicon> {
  8. /**
  9. * 测试,添加信息
  10. */
  11. Boolean tjNew();
  12. }

第二步:编写对应的XXXXmapper.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!--namespace命名空间要和mapper接口的全类名保持一致-->
  6. <mapper namespace="com.tj.demo.system.mapper.EliconMapper">
  7. <!-- id要和mapper接口中的方法名一致 -->
  8. <insert id="tjNew">
  9. INSERT INTO vue_elicon VALUES(99999,'12jdn',80,'测试mybatis添加操作')
  10. </insert>
  11. </mapper>

第三步:springboot的yml配置文件指定自定义mapper的xml文件存放位置

  1. mybatis-plus:
  2. configuration:
  3. #在映射实体或属性时,不按照驼峰命名法,还是使用_下划线(这个是默认是true
  4. map-underscore-to-camel-case: false
  5. #控制台打印与sql相关的日志
  6. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  7. global-config:
  8. db-config:
  9. #id雪花算法
  10. id-type: assign_id
  11. # 逻辑删除默认就是1
  12. logic-delete-value: 1
  13. # 逻辑删除默认就是0
  14. logic-not-delete-value: 0
  15. # 自定义mapperxml文件存放位置
  16. mapper-locations: classpath:mapper/*.xml

第四步:Service层定义接口,可以和mapper层同名

package com.tj.demo.system.service;

import com.tj.demo.system.domain.Elicon;
import com.baomidou.mybatisplus.extension.service.IService;

/**
*
*/
public interface EliconService extends IService<Elicon> {
    //定义接口,可以和mapper中相同,因为不用mapper中的,这里我建议使用一样的名字
    Boolean tjNew();

}

第五步:Service实现类里,引用mapper层中的方法

package com.tj.demo.system.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tj.demo.system.domain.Elicon;
import com.tj.demo.system.service.EliconService;
import com.tj.demo.system.mapper.EliconMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 *
 */
@Service
public class EliconServiceImpl extends ServiceImpl<EliconMapper, Elicon>
        implements EliconService {
    @Autowired(required = false)
    EliconMapper eliconMapper;

    @Override
    public Boolean tjNew() {
        return eliconMapper.tjNew();
    }
}

最后:可以通过Service层使用自定义的mapper方法

注:实际使用中,可以不需要通过Service层转一遍,但是为了编程的结构的良好习惯,还是把所有的方法汇集到Service层,由Service层来处理逻辑功能。

@SpringBootTest
class ReggieTakeOutApplicationTests {

    @Autowired
    EliconService eliconService;
    @Test
    void testMybatis() {
        eliconService.tjNew();
    }
}