参考:mybatis-plus使用xml自定义sql语句
详解mybatis-plus的 mapper.xml 路径配置的坑
第一步:定义Mapper方法
package com.tj.demo.system.mapper;
import com.tj.demo.system.domain.Elicon;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Entity com.tj.demo.system.domain.Elicon
*/
public interface EliconMapper extends BaseMapper<Elicon> {
/**
* 测试,添加信息
*/
Boolean tjNew();
}
第二步:编写对应的XXXXmapper.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命名空间要和mapper接口的全类名保持一致-->
<mapper namespace="com.tj.demo.system.mapper.EliconMapper">
<!-- id要和mapper接口中的方法名一致 -->
<insert id="tjNew">
INSERT INTO vue_elicon VALUES(99999,'12jdn',80,'测试mybatis添加操作')
</insert>
</mapper>
第三步:springboot的yml配置文件指定自定义mapper的xml文件存放位置
mybatis-plus:
configuration:
#在映射实体或属性时,不按照驼峰命名法,还是使用_下划线(这个是默认是true)
map-underscore-to-camel-case: false
#控制台打印与sql相关的日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
#id雪花算法
id-type: assign_id
# 逻辑删除默认就是1
logic-delete-value: 1
# 逻辑删除默认就是0
logic-not-delete-value: 0
# 自定义mapper的xml文件存放位置
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();
}
}