Подготовка:
Импортировать в IDEA через git или скачать.
(Опционально) Установить файл src\main\resources\resources\sql\generator-core-1.0-SNAPSHOT.jar в репозиторий Maven (используется для генерации кода, что экономит время разработки).
Преимущества использования плагина Maven: не требуется внешняя регистрация, не вмешивается в существующий код проекта, может использоваться в других проектах.
QQ группа общения: 461964997
I. Фреймворк: springBoot + shiro + mybatis + mysql + vue и др.
Реализованные функции: вход в систему, контроль разрешений ролей, журнал операций, экспорт Excel и т. д.
Модульное тестирование: использование Mockito для имитации данных и запросов MockMvc HTTP.
Интерфейс:
II. Плагин 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) Наследовать интерфейс 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 (имена атрибутов): значение представляет собой массив
Содержание 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 )