spring-data-jpa操做數據庫

一、spring-data-jpa是spring對hibernate的整合
二、spring boot工程在實體類添加註解、添加兩個依賴、寫配置文件,能夠自動生成數據庫表
實體類:
@Entity //標明根據該類建立數據表
public class People {
@Id
@GeneratedValue //主鍵自增
private Long id;
private String name;
public People(){ //必需要有無參構造
}
}
 
application.yml默認配置文件:
#默認配置文件
spring:
profiles:
active: default
datasource: #配置數據庫
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/hap_dev
username: root
password: tiger
jpa:
hibernate:
ddl-auto: create #運行時自動根據實體類建立數據庫表
show-sql: true
 
注意:
ddl-auto: create,即運行時自動根據實體類建立 people數據庫表 ,若數據庫表
people已存在則先刪除再建立
ddl-auto: update,即運行時自動根據實體類建立 people數據庫表 ,若數據庫表
people已存在則不作任何操做
ddl-auto: create-drop,即運行時自動根據實體類建立 people數據庫表,當應用停
止時刪除該表
ddl-auto: none,即運行時什麼也不幹,無數據庫表的操做
ddl-auto: validate,即運行時驗證明體類屬性與數據庫表字段是否一致,不一致
則拋異常
 
 
pom.xml依賴(基本的spring boot依賴要有)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
 
三、由spring-data-jpa操做數據庫(結合restful風格)
Service接口類:
// 繼承jpa操做數據庫的接口,並指定實體類名和主鍵類型
public interface PeopleRepository extends JpaRepository<People,Long> {
public List<People> findByName(String name);//自定義的方法命名要符合這個格式
}
Controller類:
@RestController
public class PeopleController {
@Autowired
private PeopleRepository peopleRepository;
 
//查詢people表全部數據
@GetMapping("/peoples")
public List<People> getAll(){
return peopleRepository.findAll();
}
 
// 插入一條數據
@PostMapping("/peoples")
public People addOne(@RequestParam("name") String name){
People p=new People();
p.setName(name);
return peopleRepository.save(p);
}
 
//由id獲取一條數據
@GetMapping("/peoples/{id}")
public People getOne(@PathVariable("id") Long id){
return peopleRepository.findOne(id);
}
 
//由id更新、插入一條數據
@PutMapping("/peoples/{id}")
public People putOne(@PathVariable("id") Long id,@RequestParam("name") String name){
People p=new People();
p.setId(id);
p.setName(name);
return peopleRepository.save(p);
}
 
// 由id刪除一條數據
@DeleteMapping("/peoples/{id}")
public void delOne(@PathVariable("id") Long id){
peopleRepository.delete(id);
}
 
//經過name查詢一條或多條數據
@GetMapping("/peoples/name/{name}")
public List<People> findByName(@PathVariable("name") String name){
return peopleRepository.findByName(name);
}
}
相關文章
相關標籤/搜索