spring data jpa 學習筆記

 springboot 集成 springData Jpa

1.在pom.xml添加依賴mysql

1 <!-- SpringData-Jpa依賴-->
2 <dependency
3     <groupId>org.springframework.boot</groupId>
4     <artifactId>spring-boot-starter-data-jpa</artifactId>
5 </dependency>
6 
7 <!-- mysql驅動:com.mysql.jdbc.Driver -->

2.application.xml中配置數據庫鏈接信息,自動建立表結構設置spring

1 spring.datasource.url=jdbc:mysql://localhost:3306/test
2 spring.datasource.username=root
3 spring.datasource.password=123456
4 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
5 spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop

Spring-data-jpa依賴於Hibernate 
spring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置屬性,主要做用是:自動建立、更新、驗證數據庫表結構sql

參數配置介紹:
create:
    每次加載hibernate時都會刪除上一次的生成的表,
    而後根據model類從新生成表,哪怕沒有改變,
    這是致使數據庫表數據丟失的一個重要緣由。
create-drop:
    每次加載hibernate時根據model類生成表,但sessionFactory關閉時,表自動刪除。
update:最經常使用
    首次加載hibernate時根據model類自動創建起表結構(要先創建數據庫)
    之後加載hibernate時根據model類自動更新表結構,即便表結構變了,老數據不刪除。
    注意:當部署到服務器後,表結構不會當即創建起來,應用首次運行後纔會創建表結構。
validate:
    每次加載hibernate時,驗證建立數據庫表結構,和數據庫表比較,不建立新表,會插入新值。

建立User實體,會被映射到數據庫 
hibernate.hbm2ddl.auto,應用啓動時自動建立表數據庫

 1 @Entity
 2 public class User {
 3 
 4     //沒有默認構造會報錯
 5     public User(){
 6 
 7     }
 8 
 9     public User(String name, Integer age) {
10         this.name = name;
11         this.age = age;
12     }
13 
14     @Id
15     @GeneratedValue
16     private Long id;
17 
18     @Column(nullable = false)
19     private String name;
20 
21     @Column(nullable = false)
22     private Integer age;
23 
24     public Long getId() {
25         return id;
26     }
27 
28     public void setId(Long id) {
29         this.id = id;
30     }
31 
32     public String getName() {
33         return name;
34     }
35 
36     public void setName(String name) {
37         this.name = name;
38     }
39 
40     public Integer getAge() {
41         return age;
42     }
43 
44     public void setAge(Integer age) {
45         this.age = age;
46     }
47 
48 }

 

 

 

 

 

Dao接口 繼承 JpaRepository接口 完成數據訪問springboot

1 public interface UserRepository extends JpaRepository<User, Long> {
2 
3     User findByName(String name);
4 
5     @Query("from User u where u.name=:name")
6     User findUser(@Param("name") String name);
7 
8 }
相關文章
相關標籤/搜索