В этой статье в основном описывается процесс загрузки Excel в рамках Springboot-Mybatis и импортируя в базу данных MySQL. Если идентификатор пользователя уже существует, обновите и измените информацию в базе данных. Поскольку используется технология разделения переднего интерфейса, основной записью задней части Java является внутренняя интерфейс. Он может реализовать функции, подключаясь к интерфейсу переднего интерфейса, и использовать фронтальные каркасы, такие как Layui для подключения к нему. Вы также можете написать фронтальный код самостоятельно. Эта статья начинается с контроллера и начинается с процесса введения, который включает в себя преобразование таблицы словаря.
1. Импорт аннотации в файле pom.xml, в основном с использованием POI
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId> commons-io </GroupId> <ArtifactId> commons-io </artifactid> <serse> 2.4 </version> </deperency>
2. Контроллер интерфейс
@Postmapping ("/save") public String AddUser (@RequestParam ("file") MultipluartFile file) {String filename = file.getoriginalfilename (); try {return sysservice.batchimport (файл, файл); } catch (myException e) {e.printstacktrace (); return e.getMessage (); } catch (Exception e) {e.printstackTrace (); вернуть "File Exception, Import Faile"; }}3. Интерфейс сервисного уровня
Boolean Import (String FileName, MultipartFile File) бросает исключение;
4. Класс внедрения бизнес -уровня
@TransActional (readonly = false, rolbackfor = exception.class) @override public boolean import (string fileName, multiplaRtfile файл) выбрасывает исключение {map <string, integer> departmap = findDepartment (); Map <string, integer> rolemap = findrole (); логический notnull = false; Список <user> userList = new ArrayList <user> (); if (! filename.matches ("^.+//. (? i) (xls) $") &&! filename.matches ("^.+//. (? i) (xlsx) $")) {бросить новое myexception ("формат файла загрузки неверно"); } boolean isexcel2003 = true; if (filename.matches ("^.+//. (? i) (xlsx) $"))) {isexcel2003 = false; } InputStream IS = file.getInputStream (); Рабочая тетрадь WB = NULL; if (isExcel2003) {wb = new HSSFWorkBook (IS); } else {wb = new xssfworkbook (is); } Лист = wb.getsheetat (0); if (лист! = null) {notnull = true; } Пользователь пользователя; for (int r = 1; r <= sheet.getLastrownum (); r ++) {row row = sheet.getrow (r); if (row == null) {продолжить; } user = new user (); if (row.getCell (0) .getCellType ()! = 1) {бросить новое MyException («Импорт сбой (row»+(r+1)+», а формат ячейки ID установлен в формат текста)»); } String id = row.getCell (0) .getStringCellValue (); if (id == null || id.isempty ()) {бросить новое myexception ("import fail (row"+(r+1)+"и id не заполнен)"); } String name = row.getCell (1) .getStringCellValue (); if (name == null || name.isempty ()) {бросить новое myexception ("import fail (line"+(r+1)+"и имя не заполнено)"); } String Department = row.getCell (2) .getStringCellValue (); if (departmap.get (department) == null) {бросить новое myexception («Импорт не удался (строка»+(r+1)+», и это устройство не существует или единица не заполнена)»); } String rol = row.getCell (3) .getStringCellValue (); if (rolemap.get (role) == null) {бросить новое myexception («Импорт не удался (строка»+(r+1)+», эта роль не существует или роль не заполнена)»); } Дата даты; if (row.getCell (4) .getCellType ()! = 0) {бросить новое MyException («Импорт сбой (строка»+(r+1)+», формат даты входа неверен или не заполнен)»); } else {date = row.getCell (4) .getDateCellValue (); } user.setId (id); user.setname (имя); user.setDepartmentId ((int) departmap.get (Департамент)); user.setroleid ((int) rolemap.get (role)); user.setDate (date); userlist.add (пользователь); } для (пользователь пользователя: пользовательский список) {string id = user.getid (); int cnt = usermapper.selectbyid (id); if (cnt == 0) {usermapper.adduser (пользователь); } else {usermapper.updateuserbyid (user); }} вернуть notnull; }Суммировать
Выше всего, что редактор представляет вам. Springboot загружает данные Excel и импорт таблицы в базу данных MySQL. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!