QueryWrapper строит сложные условия добавления цикла SQL, запрос таблицы соединения

QueryWrapper — это построитель запросов, предоставляемый MyBatis-Plus для построения сложных операторов SQL-запросов. QueryWrapper можно использовать для добавления условий, сортировки, разбиения на страницы и других операций.

Условие добавления цикла

В QueryWrapper вы можете использовать методы andWhere и orWhere для добавления нескольких условий, чтобы реализовать условия добавления цикла.

Вот пример кода, демонстрирующий добавление условий с помощью цикла QueryWrapper:

QueryWrapper<User> wrapper = new QueryWrapper<>();
List<String> keywords = Arrays.asList("张三", "李四", "王五");
for (String keyword : keywords) {
wrapper.or(wp->wp.eq("name", ConditionOperator.LIKE, "%" + keyword + "%"));
}
List<User> userList = userMapper.selectList(wrapper);

В приведенном выше коде мы сначала создаем объект QueryWrapper, а затем определяем список, содержащий несколько ключевых слов. Затем мы проходим по этому списку, используя цикл for, добавляя несколько условий к объекту QueryWrapper. В каждом цикле мы используем метод andWhere для добавления нового условия, это условие для запроса имени пользователя, содержащего текущее ключевое слово. Наконец, мы вызываем метод selectList UserMapper для выполнения операции запроса и сохраняем результат запроса в userList.

Запрос на присоединение к таблице

Ниже приведен пример кода, демонстрирующий, как использовать QueryWrapper для реализации запроса таблицы соединения:

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.leftJoin(new Join("user_role", "user.id = user_role.user_id"), true);
List<User> userList = userMapper.selectList(wrapper);

В приведенном выше коде мы сначала создаем объект QueryWrapper, а затем используем метод leftJoin для запроса объединенной таблицы. Этот метод принимает два параметра: первый параметр — это имя таблицы, к которой нужно присоединиться, а второй параметр — использовать ли левое соединение. В этом примере мы соединяем таблицу пользователей с таблицей user_role и используем левое соединение. Наконец, мы вызываем метод selectList UserMapper для выполнения операции запроса и сохраняем результат запроса в userList.

настраиваемый возвращаемый объект

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.customizeReturnObject(new CustomizeReturnObject() {
    @Override
    public void customize(ReturnObjectModel<User> returnObjectModel) {
        returnObjectModel.addColumn("full_name", "user.name + ' ' + user.last_name");
        returnObjectModel.addColumn("email", "user.email");
    }
});
List<Map<String, Object>> userList = userMapper.selectList(wrapper);

В приведенном выше коде мы сначала создаем объект QueryWrapper, а затем используем метод customReturnObject для настройки возвращаемого объекта. Этот метод принимает объект CustomizeReturnObject в качестве параметра, который реализует метод настройки. В методе настройки мы можем использовать объект returnObjectModel для добавления пользовательских столбцов и выражений. В этом примере мы добавили два столбца: один для комбинации имени и фамилии пользователя и один для адреса электронной почты пользователя. Наконец, мы вызываем метод selectList UserMapper для выполнения операции запроса и сохраняем результат запроса в userList.

Guess you like

Origin blog.csdn.net/luansj/article/details/131188322