Spring boot + Spring data jpa + Thymeleaf
批量插入 + POI讀取 + 文件上傳
pom.xml:
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version></dependency>
upload.html:
<form enctype="multipart/form-data" method="post" action="/upload/excel"> 文件 <input type="file" name="file" /> <input type="submit" value="上傳" /></form>
如果自己的項目中使用了Spring security,頁面提交文件之后,會出現403的錯誤,最快的解決辦法,如下:
http.csrf().ignoringAntMatchers("/upload/**").
在security的配置文件中,加入上邊的代碼即可。當然還有其他的辦法,大家可在網上查找。
Controller:
package org.meng.project.controller; import org.meng.project.service.ExcelService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.*;import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; /** *<p><b>上傳Controller類</b></p> *<p> 上傳文件的Controller</p> * @Author MengMeng * @Date 2018/10/6 </p> * @version: 0.1 * @since JDK 1.80_144 */@Controller@RequestMapping("/upload")public class UploadController { @Autowired private HttpServletRequest request; @Autowired private ExcelService excelService; //跳轉到上傳文件的頁面 @RequestMapping(value = "", method = RequestMethod.GET) public String goUpload() { //跳轉到 templates 中tools目錄下的 upload.html return "tools/upload"; } @RequestMapping(value = "/excel",method = RequestMethod.POST) public String upload(MultipartFile file, Model model) throws Exception { boolean flag = excelService.getExcel(file); if(flag){ model.addAttribute("Message", "上傳成功"); }else{ model.addAttribute("Message", "上傳失敗"); } return "tools/upload"; } }
Excel實體:
package org.meng.project.entity; import javax.persistence.*;import java.io.Serializable;import java.util.Objects; /** * <p><b>用戶實體類</b></p> * @ClassName User * @Author MengMeng * @Date 2018/10/6 </p> * @Version: 0.1 * @Since JDK 1.80_171 */ @Entity@Table(name = "test", schema = "project")public class Excel implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(length=36) private String id; @Column(length=45,nullable=false,unique=true) private String username; @Column(length=100,nullable=false,unique=true) private String email; @Column(length=45,nullable=false) private String password; @Column(length=45) private String role; public Excel() { } public Excel(Excel user){ this.id = user.getId(); this.username = user.getUsername(); this.role = user.getRole(); this.email = user.getEmail(); this.password = user.getPassword(); } //get 和 set}
新聞熱點
疑難解答