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

OSCHINA-MIRROR/YangCongTou1519-tramp

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 7.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 07:12 600ae10

Подготовка:

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