1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/best_handsome-mybatis-plus-join

Клонировать/Скачать
README-zh.md 5.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 23.05.2025 22:18 f79e569

Mybatis-Plus-Join-Logo

MyBatis-Plus-Join

Создан для упрощения разработки и повышения производительности

Maven central Sonatype Nexus (Snapshots) code style

Расширение для многотабличных запросов в MyBatis-Plus | Примеры | Документация | Добавьте звезду, чтобы поддержать проект (☆▽☆)

Добавьте мой WeChat, укажите MPJ, чтобы присоединиться к группе WeChat
Добавьте мой WeChat, укажите MPJ, чтобы присоединиться к группе WeChat

### Документация WIKI## Способ использования

Установка

  • Maven
    <dependency>
        <groupId>com.github.yulichang</groupId>
        <artifactId>mybatis-plus-join-boot-starter</artifactId>
        <version>1.5.3</version>
    </dependency>
  • Gradle
     implementation 'com.github.yulichang:mybatis-plus-join-boot-starter:1.5.3'
    или клонируйте код на локальную машину и выполните mvn install, затем добавьте указанные зависимости

    Внимание: версия MyBatis Plus должна быть 3.1.2+

Использование

  • маппер наследует MPJBaseMapper

Использование в лямбда-формате (MPJLambdaWrapper)

Простой запрос с соединением таблиц

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 > ?)

Полное руководство по использованию Wiki

Донат

Поддержите mybatis-plus-join

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/best_handsome-mybatis-plus-join.git
git@api.gitlife.ru:oschina-mirror/best_handsome-mybatis-plus-join.git
oschina-mirror
best_handsome-mybatis-plus-join
best_handsome-mybatis-plus-join
master