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 }