Создан для упрощения разработки и повышения производительности
Расширение для многотабличных запросов в MyBatis-Plus | Примеры | Документация | Добавьте звезду, чтобы поддержать проект (☆▽☆)
Добавьте мой WeChat, укажите MPJ, чтобы присоединиться к группе WeChat
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join-boot-starter</artifactId>
<version>1.5.3</version>
</dependency>
implementation 'com.github.yulichang:mybatis-plus-join-boot-starter:1.5.3'
mvn install
, затем добавьте указанные зависимостиclass test {
@Resource
private UserMapper userMapper;
void testJoin() {
// совпадает с Mybatis plus, тип параметра MPJLambdaWrapper должен быть типом основной таблицы, и использовать маппер основной таблицы
MPJLambdaWrapper<UserDO> wrapper = JoinWrappers.lambda(UserDO.class)
.selectAll(UserDO.class) // выбирает все поля из таблицы user
.select(UserAddressDO::getTel) // выбирает поле tel из таблицы user_address
.selectAs(UserAddressDO::getAddress, UserDTO::getUserAddress) // псевдоним
.select(AreaDO::getProvince, AreaDO::getCity)
.leftJoin(UserAddressDO.class, UserAddressDO::getUserId, UserDO::getId)
.leftJoin(AreaDO.class, AreaDO::getId, UserAddressDO::getAreaId)
.eq(UserDO::getId, 1)
.like(UserAddressDO::getTel, "1")
.gt(UserDO::getId, 5);
// запрос с соединением таблиц, возвращает список с пользовательским типом данных
List<UserDTO> list = userMapper.selectJoinList(UserDTO.class, wrapper);
}
}
``` // запрос с пагинацией (необходимо включить плагин пагинации mybatis plus)
Page<UserDTO> listPage = userMapper.selectJoinPage(new Page<>(2, 10), UserDTO.class, wrapper);
}
}
Соответствующий SQL
SELECT
t.id, t.name, t.sex, t.head_img,
t1.tel, t1.address AS userAddress,
t2.province, t2.city
FROM
user t
LEFT JOIN user_address t1 ON t1.user_id = t.id
LEFT JOIN area t2 ON t2.id = t1.area_id
WHERE (
t.id = ?
AND t1.tel LIKE ?
AND t.id > ?)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )