Dieser Artikel beschreibt hauptsächlich den Prozess des Hochladens von Excel im Springboot-Mybatis-Framework und zum Importieren in die MySQL-Datenbank. Wenn die Benutzer -ID bereits vorhanden ist, aktualisieren und ändern Sie die Informationen in der Datenbank. Da die Front-End-Trennungstechnologie verwendet wird, ist die Hauptdatensatz des Back-End-Java-Teils die Back-End-Schnittstelle. Es kann Funktionen implementieren, indem sie eine Verbindung zur Front-End-Schnittstelle herstellen und Front-End-Frameworks wie Layui verwenden, um sich damit zu verbinden. Sie können auch selbst Front-End-Code schreiben. Dieser Artikel beginnt mit Controller und beginnt mit dem Einführungsprozess, der die Konvertierung der Wörterbuchstabelle enthält.
1. Importieren Sie Annotationen in der Datei pom.xml, hauptsächlich mit 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> <gruppe> commons-io </Groupid> <artifactId> commons-io </artifactid> <version> 2.4 </Version> </abhängig>
2.Controller -Schnittstelle
@Postmapping ("/save") public String adduser (@RequestParam ("Datei") MultiPartFile -Datei) {String Dateiname = file.getOriginalFileName (); try {return sysservice.batchimport (Dateiname, Datei); } catch (myException e) {e.printstacktrace (); return e.getMessage (); } catch (Ausnahme e) {e.printstacktrace (); Rückgabe "Dateiausnahme, Import fehlgeschlagen"; }}3. Serviceschichtschnittstelle
Boolescher Import (String -Dateiname, MultipartFile -Datei) löst eine Ausnahme aus;
4. Business Layer -Implementierungsklasse
@Transactional (readonly = false, rollbackfor = exception.class) @Override public boolean import (String -Dateiname, MultiPartFile -Datei) löst eine Ausnahme aus {map <String, Integer> maperyMap = findDepartment (); Karte <String, Integer> rolemap = findRole (); boolean Notnull = falsch; List <Bener> userList = new ArrayList <Benuche> (); if (! Dateiname.Matches ("^.+//. } boolean isExcel2003 = true; if (Dateiname.Matches ("^.+//. (? i) (xlsx) $"))) {isexcel2003 = false; } InputStream ist = Datei.getInputStream (); Arbeitsbuch WB = NULL; if (isexcel2003) {wb = new HSSFWorkbook (ist); } else {wb = new XSSFWorkbook (IS); } Sheet Sheet = wb.getsheetat (0); if (Blatt! = null) {Notnull = true; } Benutzer Benutzer; für (int r = 1; r <= sheet.getLastrownum (); r ++) {row = sheet.getRow (r); if (row == null) {Fortsetzung; } user = new user (); if (row.getCell (0) .getCellType ()! } String id = row.getCell (0) .getStringCellValue (); if (id == null || id.isempty ()) {neue myException ("Import fehlgeschlagen (Zeile"+(r+1)+"und id nicht ausgefüllt)"); } String name = row.getCell (1) .getStringCellValue (); if (name == null || name.isempty ()) {neue myexception ("Import fehlgeschlagen (Zeile"+(r+1)+"und name nicht ausgefüllt)"); } String Department = row.getCell (2) .getStringCellValue (); if (AbteilungMap.get (Abteilung) == NULL) {Neue MyException ("Import fehlgeschlagen (Zeile"+(r+1)+"und diese Einheit existiert nicht oder die Einheit ist nicht ausgefüllt)"); } String rol rollen = row.getCell (3) .getStringCellValue (); if (rolemap.get (rolle) == null) {neue myexception ("Import fehlgeschlagen (Zeile"+(r+1)+", diese Rolle existiert nicht oder die Rolle ist nicht ausgefüllt)"); } Datum; if (row.getCell (4) .getCellType ()! } else {date = row.getCell (4) .getDateCellValue (); } user.setId (id); user.setName (name); user.setDepartmentId ((int) mapartMap.get (Abteilung)); user.setROLEID ((int) rolemap.get (Rolle)); user.setDate (Datum); userList.add (Benutzer); } für (Benutzer Benutzer: UserList) {String id = user.getId (); int cnt = userMapper.SelectbyId (id); if (cnt == 0) {userMapper.Adduser (Benutzer); } else {userMapper.UpdateuserById (Benutzer); }} return Notnull; }Zusammenfassen
Das obige ist das, was der Herausgeber Ihnen vorstellt. Springboot lädt Excel hoch und importiert Tabellendaten in die MySQL -Datenbank oder aktualisiert sie. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!