mybatis-plus-join — это плагин для mybatis plus, который позволяет работать с несколькими таблицами. Он прост в освоении: менее чем за 10 минут можно научиться использовать все его функции. Для работы с плагином достаточно знать mybatis plus (mp), а также зависимость от lombok. Плагин расширяет конструктор mp, не изменяя исходный конструктор, и не влияет на существующий проект. Можно предположить, что большинство проектов уже используют этот плагин.
mybatis-plus-join: примеры
Репозитории mybatis-plus-join:
Если вам нужно присоединиться к группе, добавьте меня в WeChat, и я приглашу вас.
В настоящее время плагин поддерживает большинство распространённых версий mybatis plus.
mybatis plus: версия 3.2.0, зависимость:
<dependency>
<groupId>icu.mhb</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>1.2.0</version>
</dependency>
Последняя версия, зависимость:
<dependency>
<groupId>icu.mhb</groupId>
<artifactId>mybatis-plus-join-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
apt зависимость:
<dependency>
<groupId>icu.mhb</groupId>
<artifactId>mybatis-plus-join-processor</artifactId>
<version>2.0.4</version>
</dependency>
Mybatis-plus | Mybatis-plus-join |
---|---|
3.2.0 | 1.2.0 |
3.3.1 - 3.42 | 1.0.2、1.3.4.1 |
3.4.3.4 - 3.5.2 | 1.0.3 、1.0.4、1.0.5、1.0.6、1.0.8、1.0.9、1.1.1、1.1.2、1.1.3、1.1.4、1.1.5、1.1.6、1.3.1、1.3.2、1.3.3 |
3.5.3 - * | 1.3.3.1、1.3.4、1.3.5、1.3.5.1、1.3.6、1.3.7、1.3.8、2.0.4 |
Версия 2.0 поддерживает apt для генерации кода. Вы можете использовать цепочку вызовов, а QueryWrapper используется в качестве нижнего уровня. Почти все преимущества строк и лямбда-выражений включены в этот метод. Рекомендуется использовать его.
UsersVo users = new UsersVo();
users.setUserName("setUserName");
users.setAgeName("setAgeName");
UsersChain usersChain = UsersChain.create();
UsersAgeChain ageChain = UsersAgeChain.create();
return Joins.chain(usersChain)
.selectAs(() -> {
return usersChain.userId().userName().createTime()
.to(ageChain)
.ageDoc().ageName().id();
})
.leftJoin(ageChain._id(), usersChain._ageId())
.joinAnd(ageChain, (w) -> w.eq(ageChain._id(1)))
.eqIfNull(() -> {
return usersChain.userName(users.getUserName())
.userId(users.getUserId())
.ageId(users.getAgeId())
.to(ageChain)
.ageName(users.getAgeName())
.ageDoc(users.getAgeDoc());
}).joinList(UsersVo.class);
List<UsersVo> list = Joins.of(Users.class)
.leftJoin(UsersAge.class,UsersAge::getAgeId,Users::getAgeId)
.eq(UsersAge::getAgeName,1).end()
.joinList(UsersVo.class);
// 生成SQL
SELECT
users.user_name,
users.create_time,
users.age_id,
users.content_json,
users.user_id
FROM
users AS users
LEFT JOIN users_age AS users_age ON users_age.id = users.age_id
WHERE
users_age.age_name = '1'
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )