<! --suppress HtmlDeprecatedAttribute -->
MyBatis-Plus-Join
Создан для упрощения разработки и повышения производительности
Расширение многотабличных запросов для MyBatis-Plus |
Пример проекта |
Документация по использованию |
Поддержите проект, поставив звездочку (☆▽☆)
Добавьте автора в WeChat, укажите MPJ, чтобы присоединиться к группе WeChat

###
Документация по использованию WIKI
## Способ использования
### Установка
- Maven
```xml
com.github.yulichang
mybatis-plus-join-boot-starter
1.5.3
```
- Gradle
```
implementation 'com.github.yulichang:mybatis-plus-join-boot-starter:1.5.3'
```
или клонируйте код на локальную машину и выполните `mvn install`, затем добавьте вышеуказанные зависимости
**Внимание:** Версия MyBatis Plus должна быть 3.1.2 или выше
### Использование
* маппер наследует MPJBaseMapper
### Использование в лямбда-формате (MPJLambdaWrapper)
#### Простой запрос с соединением таблиц
```java
class test {
@Resource
private UserMapper userMapper;
void testJoin() {
//аналогично Mybatis plus, тип параметра MPJLambdaWrapper должен быть типом основной таблицы, и использовать маппер основной таблицы
MPJLambdaWrapper 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);
}
}
``` // запрос с соединением таблиц, возвращающий пользовательский тип данных ResultType
List list = userMapper.selectJoinList(UserDTO.class, wrapper);
// пагинация (требуется включение плагина пагинации Mybatis plus)
Page 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 > ? )
```
#
Полное руководство по использованию wiki
# С любовью
Комментарии ( 0 )