前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
?
- 引入Maven依賴包
<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-boot-starter-data-jpa
中已經包含了Hibernate所需要的相關依賴,所以只需要引入Jpa的依賴即可。
- 創建配置文件
在application.properties
中加一行:spring.profiles.active=dev
application-dev.properties
配置文件的內容如下:
server.port=80# Hibernate 相關配置## 方言
#hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
## 顯示Sql
hibernate.show_sql=true
## 自動建表方式
#hibernate.hbm2ddl.auto= update
## 自動掃描的包前綴
entitymanager.packagesToScan= com.zslin## 數據庫連接
spring.datasource.url=jdbc:mysql://localhost:3306/study05?\useUnicode=true&characterEncoding=utf-8&useSSL=true&autoReconnect=true## 用戶名
spring.datasource.username=root## 密碼
spring.datasource.password=123## 數據庫驅動
spring.datasource.driver-class-name=com.mysql.jdbc.Driver## 建表方式
spring.jpa.properties.hibernate.hbm2ddl.auto=update# 方言
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
注意:最關鍵的是最后兩個配置,spring.jpa.properties.hibernate.hbm2ddl.auto=update
而不是hibernate.hbm2ddl.auto=update
,使用了Jpa所以鍵名稱需要有相應調整,否則不會自動建表
spring.jpa.properties.hibernate.hbm2ddl.auto
有幾種配置:
-
create
:每次加載Hibernate時都會刪除上一次生成的表,然后重新生成新表,即使兩次沒有任何修改也會這樣執行,這就導致每次啟動都是一個新的數據庫,也是導致數據丟失的重要原因。 -
create-drop
:每次加載Hibernate時都會生成表,但當SessionFactory關閉時,所生成的表將自動刪除。 -
update
:最常用的屬性值,第一次加載Hibernate時創建數據表(前提是需要先有數據庫),以后加載HIbernate時只會根據model更新,即使model已經刪除了某些屬性,數據表也不會隨之刪除字段。 -
validate
:每次加載Hibernate時都會驗證數據表結構,只會和已經存在的數據表進行比較,根據model修改表結構,但不會創建新表。
具體配置可參考文章《Springboot 之 文件結構和配置文件》
- 創建Model實體類
package com.zslin.model;import javax.persistence.*;/*** Created by 鐘述林 393156105@qq.com on 2016/10/18 17:15.*/
@Entity
@Table(name = "t_user")
public class User {@Id@GeneratedValue(strategy = GenerationType.AUTO)private Integer id;@Column(name = "user_name")private String userName;private String password;@Column(name = "nick_name")private String nickName;private String email;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}
}
注意:
1、 在主建Id上需要加注釋:@Id
和@GeneratedValue(strategy = GenerationType.AUTO)
才會自動增長
2、 在需要重新設置表字段名的屬性上加注釋@Column(name = "字段名")
即可。
3、 在類名上添加注釋:@Entity
和@Table(name = "t_user")
,t_user
是表名
- 啟動項目
啟動項目后在study05
數據庫中將出現t_user的數據表,且存在相應的表字段。
示例代碼:https://github.com/zsl131/spring-boot-test/tree/master/study05
?