Springbooot实现Excel数据导入数据库

一、pom.xml 加入依赖

<!--        poi  hutool-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.20</version>
        </dependency>

二、userMapper,批量添加  

        由于id和creatTime自动添加数据  所以省略

<!--    Integer addUsers(List<User> users);-->
        <insert id="addUsers">

        insert into sys_user(username, password, nickname, email, phone, address, avater)

            VALUES

            <foreach collection="list" item="user" separator="," >

                (#{user.username},#{user.password},#{user.nickname},#{user.email},#{user.phone},#{user.address},#{user.avater})

            </foreach>

        </insert>

三、controller 

//导入Excel
    @PostMapping("import")
    public Integer importExcel(MultipartFile file) throws IOException {

        InputStream is = file.getInputStream();
        ExcelReader reader = ExcelUtil.getReader(is);
        List<User> list = reader.readAll(User.class);
        Integer integer = userService.insertUsers(list);

        return integer;
    }

user实体类,使用@Alias注解  导入导出时  excel表头可以中文 



import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * @author 27164
 * @version 1.0
 * @description: TODO
 * @date 2023/9/23 10:34
 */

@Data
public class User {

    @Alias("id")
    private Integer id;
    @Alias("用户名")
    private String username;
    @Alias("密码")
    private String password;
    @Alias("昵称")
    private String nickname;
    @Alias("邮箱")
    private String email;
    @Alias("手机")
    private String phone;
    @Alias("地址")
    private String address;
    @Alias("创建时间")
    @JsonFormat(pattern = "yyyy年MM月dd日 HH时mm分ss秒")
    private String creatTime;
    @Alias("头像")
    private String avater;
}

四、对应表数据

五、字段

六、postman测试

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,首先我们需要创建一个Spring Boot项目,然后添加相关依赖,包括Spring Web、Thymeleaf和MySQL驱动等。这里提供一个简单的示例: pom.xml文件: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> ``` 接下来,我们需要配置数据库连接信息。在application.properties文件中添加以下内容: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 这里假设我们使用的是本地的MySQL数据库数据库名为test,用户名为root,密码为123456。 然后,我们需要创建一个User实体类,用于存储用户信息,包括用户名和密码。代码如下: ```java public class User { private String username; private String password; // 省略getter和setter方法 } ``` 接下来,我们需要创建一个UserController类,用于处理用户登录请求。代码如下: ```java @Controller public class UserController { @Autowired private UserService userService; @GetMapping(&quot;/login&quot;) public String login() { return &quot;login&quot;; } @PostMapping(&quot;/login&quot;) public String doLogin(User user, Model model) { if (userService.checkLogin(user)) { return &quot;home&quot;; } else { model.addAttribute(&quot;message&quot;, &quot;用户名或密码错误&quot;); return &quot;login&quot;; } } } ``` 在上面的代码中,我们使用了@Controller注解将该类声明为控制器,处理用户的登录请求。其中,@GetMapping(&quot;/login&quot;)表示处理GET请求的/login路径,返回login.html页面;@PostMapping(&quot;/login&quot;)表示处理POST请求的/login路径,接收用户提交的用户名和密码,进行验证。如果用户名和密码正确,跳转到home.html页面;否则,返回login.html页面,并显示错误信息。 接下来,我们需要创建一个UserService类,用于实现用户登录验证逻辑。代码如下: ```java @Service public class UserService { @Autowired private UserRepository userRepository; public boolean checkLogin(User user) { User dbUser = userRepository.findByUsername(user.getUsername()); if (dbUser != null && dbUser.getPassword().equals(user.getPassword())) { return true; } else { return false; } } } ``` 在上面的代码中,我们使用了@Service注解将该类声明为服务类,提供用户登录验证逻辑。其中,@Autowired注解表示自动注入UserRepository对象,用于操作数据库;checkLogin方法接收一个User对象作为参数,根据用户名查找数据库中的用户信息,并进行密码比对。如果比对成功,返回true;否则,返回false。 最后,我们需要创建两个HTML页面,login.html和home.html,分别用于登录页面和主页。代码如下: login.html: ```html <!DOCTYPE html> <html xmlns:th=&quot;http://www.thymeleaf.org&quot;> <head> <meta charset=&quot;UTF-8&quot;> <title>Login</title> </head> <body> <h1>Login</h1> <form action=&quot;#&quot; th:action=&quot;@{/login}&quot; method=&quot;post&quot;> <p> <label>Username:</label> <input type=&quot;text&quot; name=&quot;username&quot;/> </p> <p> <label>Password:</label> <input type=&quot;password&quot; name=&quot;password&quot;/> </p> <p> <button type=&quot;submit&quot;>Login</button> </p> </form> <p th:text=&quot;${message}&quot;></p> </body> </html> ``` 在上面的代码中,我们使用Thymeleaf模板引擎实现了页面的渲染。其中,th:action=&quot;@{/login}&quot;表示表单提交的路径为/login;th:text=&quot;${message}&quot;用于显示错误信息。 home.html: ```html <!DOCTYPE html> <html> <head> <meta charset=&quot;UTF-8&quot;> <title>Home</title> </head> <body> <h1>Welcome!</h1> </body> </html> ``` 至此,我们已经完成了一个简单的登录功能。完整代码如下: User.java: ```java public class User { private String username; private String password; // 省略getter和setter方法 } ``` UserRepository.java: ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { User findByUsername(String username); } ``` UserService.java: ```java @Service public class UserService { @Autowired private UserRepository userRepository; public boolean checkLogin(User user) { User dbUser = userRepository.findByUsername(user.getUsername()); if (dbUser != null && dbUser.getPassword().equals(user.getPassword())) { return true; } else { return false; } } } ``` UserController.java: ```java @Controller public class UserController { @Autowired private UserService userService; @GetMapping(&quot;/login&quot;) public String login() { return &quot;login&quot;; } @PostMapping(&quot;/login&quot;) public String doLogin(User user, Model model) { if (userService.checkLogin(user)) { return &quot;home&quot;; } else { model.addAttribute(&quot;message&quot;, &quot;用户名或密码错误&quot;); return &quot;login&quot;; } } } ``` application.properties: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` login.html: ```html <!DOCTYPE html> <html xmlns:th=&quot;http://www.thymeleaf.org&quot;> <head> <meta charset=&quot;UTF-8&quot;> <title>Login</title> </head> <body> <h1>Login</h1> <form action=&quot;#&quot; th:action=&quot;@{/login}&quot; method=&quot;post&quot;> <p> <label>Username:</label> <input type=&quot;text&quot; name=&quot;username&quot;/> </p> <p> <label>Password:</label> <input type=&quot;password&quot; name=&quot;password&quot;/> </p> <p> <button type=&quot;submit&quot;>Login</button> </p> </form> <p th:text=&quot;${message}&quot;></p> </body> </html> ``` home.html: ```html <!DOCTYPE html> <html> <head> <meta charset=&quot;UTF-8&quot;> <title>Home</title> </head> <body> <h1>Welcome!</h1> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值