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

OSCHINA-MIRROR/YangCongTou1519-tramp

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Подготовка:

  1. Импортировать в IDEA через git или скачать.

  2. (Опционально) Установить файл src\main\resources\resources\sql\generator-core-1.0-SNAPSHOT.jar в репозиторий Maven (используется для генерации кода, что экономит время разработки).

Преимущества использования плагина Maven: не требуется внешняя регистрация, не вмешивается в существующий код проекта, может использоваться в других проектах.

  1. (Опционально) Установить плагин src\main\resources\resources\sql\mybatisSqlNav.jar в IDEA (навигация по XML к SQL, повышение эффективности разработки).

QQ группа общения: 461964997

I. Фреймворк: springBoot + shiro + mybatis + mysql + vue и др.

Реализованные функции: вход в систему, контроль разрешений ролей, журнал операций, экспорт Excel и т. д.

Модульное тестирование: использование Mockito для имитации данных и запросов MockMvc HTTP.

Интерфейс:

II. Плагин MyBatis

  1. Очень удобный плагин MyBatis для разбивки на страницы.

Контроллеру больше не нужно писать параметры разбивки на страницы, а SQL не требует оператора count, имя параметра разбивки на страницы можно настроить в файле конфигурации.

Пример:

1. Запрос браузера:

  localhost:8888/demo/pageCount?currentPage=1&pageSize=10

2. Код контроллера бэкенда:
    @RequestMapping("/pageCount")
    public ResultData pageCount() {
        // Указываем метод, который необходимо разбить на страницы, выполнить разбивку на страницы и оператор count
        this.setPageSqlId("UserDao.getList");
        // Указать метод, который нужно разбить на страницы, выполнять только разбиение на страницы без выполнения оператора count
        // this.setPageSqlId("UserDao.getList",false)
        List<User> list = userService.getList();
        return successPage(list);
    }

3. SQL-код MyBatis:

    <select id="getList" resultMap="baseResultMap">
        SELECT * FROM USER
    </select>

4. Возвращаемый результат:

{ code: 200, msg: "Операция прошла успешно", data: [{ id: "0296d1ca-c935-41d1-991a-8b609cd3c582", name: "cjm", status: 1 }, { id: "02a56a67-76df-41f5-bc6f-81edef177ae7", name: "cjm", status: 1 }, { id: "04e866b7-8bcd-4f93-977e-0ac5613b50c8", name: "cjm", status: 1 }], total: 4 }

Очень удобно, кроме того, если вы считаете, что эффективность оператора count низкая, вы можете вызвать перегруженный метод this.setPageSqlId («UserDao.getList», false), чтобы выполнить только разбивку на страницы без оператора count. Вы можете настроить оператор count самостоятельно.

  1. Можно добавить собственную логику плагина MyBatis, например, реализовать контроль доступа к данным и т.д.

(1) Наследовать интерфейс HandlerSQLConverter;

(2) Реализовать метод convertSql (соединение Connection, MappedStatement mappedStatement, BoundSql boundSql);

(3) Добавить класс реализации в класс SqlInterceptor в sqlConverters.

III. Упаковка экспорта Excel

Например, уже существующий интерфейс разбиения на страницы:

@RequestMapping("/pageCount")
public ResultData pageCount() {
    this.setPageSqlId("UserDao.getList");
    List<User> list = userService.getList();
    return successPage(list);
}

Теперь, когда вы хотите экспортировать данные этого списка в Excel, вам нужно только добавить параметры:

frameParamExportType=excel

frameParamExportFieldKeys (атрибуты, соответствующие списку): значение представляет собой массив

frameParamExportFieldNames (имена атрибутов): значение представляет собой массив

Пример: http://localhost:8888/demo/pageCount?frameParamExportType=excel&frameParamExportFieldKeys=["name","status"]&frameParamExportFieldNames=["名称","状态"]

Содержание Excel:

Таким образом, список данных экспортируется в Excel, повторно используется интерфейс списка, сокращается рабочая нагрузка;

IV. Maven-плагин — генератор кода

Собственный разработанный плагин Maven с высокой расширяемостью и удобством. Подробности см. в блоге: (https: //my.oschina.net/u/2526698/blog/1556347) После успешного выполнения генератора кода предоставляются общие методы работы (получение, удаление, обновление и т. д.):

Пример:

@RequestMapping("/get")
public ResultData get(String id) {
    User user = userService.get(id);
    return success(user);
}

@RequestMapping("/insert")
public ResultData insert(User user) {
    User user1 = userService.insert(user);
    return success(user1);
}

@RequestMapping("/delete")
public ResultData delete(String id) {
    userService.delete(id);
    return success(true);
}

@RequestMapping("/update")
public ResultData update(User user) {
    User result = userService.update(user);
    return success(result);
}

@RequestMapping("/updateField")
public ResultData updateField(String id) {
    User user = userService.get(id);
    Random random = new Random();
    user.setName("updateField_"+random.nextInt(10));
    user.setStatus(random.nextInt(3));
    userService.updateField(user,UserField.update().name().status());
    return success(userService.get(id));
}

V. IntelliJ IDEA плагин

Находите файл mapper.xml:

(1). В сервисе или dao, когда курсор находится над методом, нажмите комбинацию клавиш Ctrl + Shift + X (или ALT + Inser, выберите goToMapper), если соответствующий xml имеет идентификатор, равный имени метода, вы можете быстро перейти к файлу mapper.xml, соответствующему методу. местоположение sql.

(2). В dao, если метод не существует в mapper, он создаст тег id = «имя метода» в mapper;

Примечание: интерфейс использует 小林攻城狮 / dp-BOOT, спасибо за ссылку: https://gitee.com/zhocuhenglin/dp-BOOT

QQ группа общения: 461964997

Комментарии ( 0 )

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

Введение

1. Ролевое управление доступом. 2. Простая реализация постраничного вывода с помощью MyBatis. 3. Инкапсуляция экспорта в Excel, удовлетворяющая большинству требований к экспорту. 4. Maven-плагин — генератор кода для быстрой разработки, ориентированный на бизнес-логику. 5. Плагин для IntelliJ IDEA для помощи в программировании и повышения произ... Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/YangCongTou1519-tramp.git
git@api.gitlife.ru:oschina-mirror/YangCongTou1519-tramp.git
oschina-mirror
YangCongTou1519-tramp
YangCongTou1519-tramp
master