ORM框架是关系型数据库和面向对象之间的一个转换工具。
- 利用Java对象自动生成表结构
- 便于查询对象,即流畅的API
配置
Hibernate是Spring Boot Jpa的默认实现。所以,想要集成hibernate到Spring Boot中,可以直接引入下面的Pom文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
配置连接数据库的链接application.properties
:
# 后面那个serverTimezone是时区设置有的时候会报错如果不设置
spring.datasource.url=jdbc:mysql://localhost:3306/library?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=xxxxx
# database schema strategy,初次创建表使用create,之后可以用update
spring.jpa.hibernate.ddl-auto=update
Code
Repository类默认实现了增删该查功能,不需要提供任何方法实现:
比如我们有一个实体Book:
@Entity
public class Book {
@Id
@GeneratedValue
private Long id;
private String name;
//后面要跟setter和getter,因为hibernates依赖它,至少要有getter
}
然后声明一个接口,就可以开始写业务逻辑了:
@Repository
public interface BookRepository extends JpaRepository<Book, Long> {
}
本章简单实现增删改查:
@RestController
@RequestMapping("/book")
public class BookController{
@Autowired
BookRepository bookRepository;
@GetMapping("/listallbooks")
public List<Book> getBooks(){
return bookRepository.findAll();
}
@PostMapping("/add")
public String AddBooks(@RequestBody Book book){
System.out.println(book);
bookRepository.save(book);
return "add one book";
}
@DeleteMapping("/delete/{bookId}")
public String DeleteBooks(@PathVariable String bookId){
bookRepository.delete(bookRepository.getOne(Long.parseLong(bookId)));
return "delete ok";
}
@PutMapping("/modify")
public String ModifyBooks(@RequestBody Book book){
Book booktemp=bookRepository.getOne(book.getId());
booktemp.setName(book.getName());
bookRepository.save(booktemp);
return "modify book success";
}
}