微信登录

数据库操作 - 插入数据 - 插入新记录到数据库

Java - Web - Spring 《数据库操作 - 插入数据 - 插入新记录到数据库》

在 Java Web 开发中,使用 Spring 框架进行数据库操作是非常常见的需求。本文将详细介绍如何使用 Spring 框架将新记录插入到数据库中,我们将使用 Spring JDBC 模板来完成这个任务。Spring JDBC 模板简化了 JDBC 编程的复杂性,提供了更简洁的 API 来执行数据库操作。

环境准备

在开始之前,我们需要确保以下环境已经配置好:

  1. Java 开发环境:JDK 8 或更高版本。
  2. Spring 框架:可以使用 Spring Boot 来快速搭建项目。
  3. 数据库:本文以 MySQL 数据库为例,需要安装 MySQL 并创建相应的数据库和表。

创建数据库和表

首先,我们需要创建一个 MySQL 数据库和一个示例表。可以使用以下 SQL 语句来创建:

  1. -- 创建数据库
  2. CREATE DATABASE spring_jdbc_example;
  3. -- 使用数据库
  4. USE spring_jdbc_example;
  5. -- 创建表
  6. CREATE TABLE users (
  7. id INT AUTO_INCREMENT PRIMARY KEY,
  8. name VARCHAR(50) NOT NULL,
  9. email VARCHAR(100) NOT NULL
  10. );

创建 Spring Boot 项目

可以使用 Spring Initializr(https://start.spring.io/)来创建一个新的 Spring Boot 项目,添加以下依赖:

  • Spring Web
  • Spring Data JDBC
  • MySQL Driver

配置数据库连接

application.properties 文件中配置数据库连接信息:

  1. spring.datasource.url=jdbc:mysql://localhost:3306/spring_jdbc_example
  2. spring.datasource.username=root
  3. spring.datasource.password=your_password
  4. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

创建实体类

创建一个 User 实体类来表示 users 表中的记录:

  1. package com.example.demo.entity;
  2. public class User {
  3. private int id;
  4. private String name;
  5. private String email;
  6. // 构造函数
  7. public User() {}
  8. public User(String name, String email) {
  9. this.name = name;
  10. this.email = email;
  11. }
  12. // Getters 和 Setters
  13. public int getId() {
  14. return id;
  15. }
  16. public void setId(int id) {
  17. this.id = id;
  18. }
  19. public String getName() {
  20. return name;
  21. }
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25. public String getEmail() {
  26. return email;
  27. }
  28. public void setEmail(String email) {
  29. this.email = email;
  30. }
  31. @Override
  32. public String toString() {
  33. return "User{" +
  34. "id=" + id +
  35. ", name='" + name + '\'' +
  36. ", email='" + email + '\'' +
  37. '}';
  38. }
  39. }

创建数据访问对象(DAO)

创建一个 UserDao 接口和它的实现类 UserDaoImpl 来处理数据库操作:

  1. package com.example.demo.dao;
  2. import com.example.demo.entity.User;
  3. public interface UserDao {
  4. int insertUser(User user);
  5. }
  1. package com.example.demo.dao.impl;
  2. import com.example.demo.dao.UserDao;
  3. import com.example.demo.entity.User;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.jdbc.core.JdbcTemplate;
  6. import org.springframework.stereotype.Repository;
  7. @Repository
  8. public class UserDaoImpl implements UserDao {
  9. @Autowired
  10. private JdbcTemplate jdbcTemplate;
  11. @Override
  12. public int insertUser(User user) {
  13. String sql = "INSERT INTO users (name, email) VALUES (?,?)";
  14. return jdbcTemplate.update(sql, user.getName(), user.getEmail());
  15. }
  16. }

创建服务层

创建一个 UserService 类来调用 UserDao 中的方法:

  1. package com.example.demo.service;
  2. import com.example.demo.dao.UserDao;
  3. import com.example.demo.entity.User;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. @Service
  7. public class UserService {
  8. @Autowired
  9. private UserDao userDao;
  10. public int addUser(User user) {
  11. return userDao.insertUser(user);
  12. }
  13. }

创建控制器

创建一个 UserController 类来处理 HTTP 请求:

  1. package com.example.demo.controller;
  2. import com.example.demo.entity.User;
  3. import com.example.demo.service.UserService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.PostMapping;
  6. import org.springframework.web.bind.annotation.RequestBody;
  7. import org.springframework.web.bind.annotation.RestController;
  8. @RestController
  9. public class UserController {
  10. @Autowired
  11. private UserService userService;
  12. @PostMapping("/users")
  13. public int addUser(@RequestBody User user) {
  14. return userService.addUser(user);
  15. }
  16. }

测试插入数据

可以使用 Postman 或其他工具来测试插入数据的功能。发送一个 POST 请求到 http://localhost:8080/users,请求体如下:

  1. {
  2. "name": "John Doe",
  3. "email": "johndoe@example.com"
  4. }

如果插入成功,响应将返回插入的记录数(通常为 1)。

总结

本文介绍了如何使用 Spring 框架将新记录插入到数据库中。通过 Spring JDBC 模板,我们可以简化 JDBC 编程的复杂性,提高开发效率。以下是本文的主要步骤总结:
| 步骤 | 描述 |
| —— | —— |
| 1 | 创建数据库和表 |
| 2 | 创建 Spring Boot 项目并添加依赖 |
| 3 | 配置数据库连接 |
| 4 | 创建实体类 |
| 5 | 创建数据访问对象(DAO) |
| 6 | 创建服务层 |
| 7 | 创建控制器 |
| 8 | 测试插入数据 |

通过以上步骤,你可以轻松地使用 Spring 框架将新记录插入到数据库中。