五、自定義Mapper\六、自定義Service
阿新 • • 發佈:2021-11-03
目錄
五、自定義Mapper
當通用Mapper無法滿足我們的需求時,我們可以自定義基於Mapper介面的xml檔案,並在xml檔案中配置SQL語句
1、介面方法定義
在UserMapper介面中定義如下方法
List<User> selectAllByName(String name);
2、建立xml檔案
在resources目錄中建立mapper目錄,建立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"> <mapper namespace="com.atguigu.mybatisplus.mapper.UserMapper"> <sql id="Base_Column_List"> id, name, age, email </sql> <select id="selectAllByName" resultType="com.atguigu.mybatisplus.entity.User"> select <include refid="Base_Column_List"/> from user where name = #{name} </select> </mapper>
注意:MP中mapper目錄是持久層對映檔案的預設目錄,如果是其他目錄,需要配置mapper-locations,例如:
mybatis-plus.mapper-locations=classpath:xml/*.xml
3、測試條件查詢
在MapperTests中建立如下測試用例
@Test
public void testSelectAllByName(){
List<User> users = userMapper.selectAllByName("Helen");
users.forEach(System.out::println);
}
六、自定義Service
1、新增介面方法
UserService中新增介面方法
List<User> listAllByName(String name);
2、實現介面方法
@Override
public List<User> listAllByName(String name) {
// baseMapper物件指向當前業務的mapper物件
return baseMapper.selectAllByName("Helen");
}
4、測試
ServiceTests中新增測試方法
@Test public void testListAllByName(){ List<User> users = userService.listAllByName("Helen"); users.forEach(System.out::println); }