Spring Boot连接数据库实现CURD

377 阅读1分钟

前置条件

  • JDK 1.8
  • Maven 3.2+
  • Mysql 5.6+

第一步:创建项目

用IDEA创建一个Spring Web项目勾选上数据库Mysql

image.png

image.png 点击Next就可以生成项目,导入Maven依赖

还需要在pom.xml添加一个配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

第二步:创建配置文件 application.properties

src/main/resources/application.properties输入以下内容

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

url分别表示域名 + 端口号 + 数据库

第三步:创建Entity实体

创建User类src/main/java/com/example/springpractice/entity/User.java

package com.example.springpractice.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
   private Integer id;
   private String user_name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUser_name() {
        return user_name;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }
}

Hibernate 自动将实体转换为表格。

第四步:创建记录user数据的存储库

src/main/java/com/example/springpractice/repository/UserRepository.java

package com.example.springpractice.repository;

import com.example.springpractice.entity.User;
import org.springframework.data.repository.CrudRepository;

// This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository
// CRUD refers Create, Read, Update, Delete
public interface UserRepository extends CrudRepository<User, Integer> {
}

第五步:创建对应Controller

src/main/java/com/example/springpractice/repository/controller/MainController.java

package com.example.springpractice.controller;

import com.example.springpractice.entity.User;
import com.example.springpractice.repository.UserRepository;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller // This means that this class is a Controller
@RequestMapping(path="/demo") // This means URL starts with /demo (After Application Path)
public class MainController {
    private final UserRepository userRepository;

    public MainController(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @PostMapping(path="/add") // Map only post request
    public @ResponseBody String addNewUser(@RequestBody User newUser) {
        userRepository.save(newUser);
        return "Saved";
    }

    @GetMapping("/all")
    public @ResponseBody Iterable<User> getAllUser() {
        return userRepository.findAll();
    }
}

第六步:启动项目验证

使用Postman访问地址 get localhost:8080/demo/all 查询出所有的数据

post http://localhost:8080/demo/add 传递一个name为123测试

这边有几个注意点

1、Entity类的名字对应数据库的表名

2、com.mysql.cj.jdbc.Driver是新的,com.mysql.jdbc.Driver是要废弃的

3、官方UserRepository是@Autowired注解注入的,但是idea已经提示不建议这么做,使用使用构造方法初始化设置