一、注解方式实现自定义SQL
1.创建数据库表
2.创建SpringBoot项目,创建实体类
3.配置application.yml配置文件,配置数据源等相关信息。
3.在启动类上加上注解@MapperScan(basePackages = "dao接口的全限定路径包名")
4.在dao接口中,通过添加方法,在方法上添加Mybatis的相关注解实现自定义SQL,如下:
//如果自定义的方法还希望能够使用MP提供的Wrapper条件构造器,则需要如下写法
@Select("SELECT * FROM user ${ew.customSqlSegment}")
List<User> selectByMyWrapper(@Param(Constants.WRAPPER) Wrapper<User> userWrapper);
@Select("SELECT * FROM user where name = #{name}")
List<User> selectByName(@Param("name") String name);
二、XML方式实现自定义SQL
1,2,3 同注解方式一样
4. 在dao接口中,通过添加方法
5. 在application.yml中配置xml的配置文件路径
mybatis-plus:
# 如果是放在src/main/java目录下 classpath:/com/*/*/mapper/*Mapper.xml
# 如果是放在resource目录 classpath:/mapper/**.xml
mapper-locations: classpath:/mapper/**.xml
代码:
public interface UserMapper extends BaseMapper<User> {
List<User> selectByMyWrapper(@Param(Constants.WRAPPER) Wrapper<User> userWrapper);
List<User> selectByName(@Param("name") String name);
}
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">
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="selectByName" resultType="com.example.demo.model.User">
SELECT * FROM user where name = #{name}
</select>
<select id="selectByMyWrapper" resultType="com.example.demo.model.User">
SELECT * FROM user ${ew.customSqlSegment}
</select>
</mapper>
说明:namespace代表mapper接口路径,标签中的id代表接口中方法的方法名,resultType代表接口方法的返回值类型