SpringBoot整合SpringDataJPA
1.添加依賴關系
- 添加SpringBoot對MySQL以及SpringDataJPA的支持依賴
- 添加mysql-connector-java的支持
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
- 添加spring-data-jpa的支持
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.配置數據庫
- 修改application.properties文件,添加數據源配置
spring.datasource.url=jdbc:mysql://localhost:3306/spring?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.show-sql= true
3.編寫實體類
@Entity
public class User{
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private String email;
private String nickName;
private String age;
/*省略構造方法和get、set函數*/
}
@Entity注解表明它是一個JPA實體
id屬性加了@Id和@GeneratedValue注解,說明這個字段是實體的唯一標識,并且這個字段的值是自動生成的。
4.定義倉庫接口
要定義用于把User對象持久化到數據庫的倉庫了。因為用了Spring Data JPA,
所以我們要做的就是簡單地定義一個接口,擴展一下Spring Data JPA的JpaRepository接口:
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findAll();
List<User> findAllById(Long id);
}
5.創建處理器
@RestController
public class UserController {
@Autowired
private UserRepository mUserRepository;
@RequestMapping (value = "/add")
public List<User> addUser() {
User user = new User();
user.setAge("23");
user.setNickName("赫本");
user.setEmail("email@gmail.com");
mUserRepository.save(user);
return mUserRepository.findAll();
}
@RequestMapping ("/findAll")
public List<User> findAll() {
return mUserRepository.findAll();
}
@RequestMapping ("/findByID/{id}")
public List<User> findByID(@PathVariable ("id") Long id) {
return mUserRepository.findAllById(id);
}
}
控制器有三個方法:
- 1、addUser:處理/add上的請求,向數據庫保存一條User信息
- 2、findAll:處理/findAll上的請求,從數據庫獲取所有User列表
- 3、findByID:處理/findByID/{id}上的請求,從數據庫獲取指定id的user
運行應用程序
-
add:
-
findAll:
-
findByID/{id}:findByID/{8}