SpringBoot整合SpringDataJPA
1.添加依賴關(guān)系
- 添加SpringBoot對(duì)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.配置數(shù)據(jù)庫
- 修改application.properties文件,添加數(shù)據(jù)源配置
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.編寫實(shí)體類
@Entity
public class User{
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private String email;
private String nickName;
private String age;
/*省略構(gòu)造方法和get、set函數(shù)*/
}
@Entity注解表明它是一個(gè)JPA實(shí)體
id屬性加了@Id和@GeneratedValue注解,說明這個(gè)字段是實(shí)體的唯一標(biāo)識(shí),并且這個(gè)字段的值是自動(dòng)生成的。
4.定義倉庫接口
要定義用于把User對(duì)象持久化到數(shù)據(jù)庫的倉庫了。因?yàn)橛昧薙pring Data JPA,
所以我們要做的就是簡單地定義一個(gè)接口,擴(kuò)展一下Spring Data JPA的JpaRepository接口:
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findAll();
List<User> findAllById(Long id);
}
5.創(chuàng)建處理器
@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);
}
}
控制器有三個(gè)方法:
- 1、addUser:處理/add上的請(qǐng)求,向數(shù)據(jù)庫保存一條User信息
- 2、findAll:處理/findAll上的請(qǐng)求,從數(shù)據(jù)庫獲取所有User列表
- 3、findByID:處理/findByID/{id}上的請(qǐng)求,從數(shù)據(jù)庫獲取指定id的user
運(yùn)行應(yīng)用程序
-
add:
-
findAll:
-
findByID/{id}:findByID/{8}


