前置条件
- JDK 1.8
- Maven 3.2+
- Mysql 5.6+
第一步:创建项目
用IDEA创建一个Spring Web项目勾选上数据库Mysql
点击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已经提示不建议这么做,使用使用构造方法初始化设置