搭建簡單的Spring-Data JPA項目
一、 JPA概述
JPA的全稱是Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基於ORM的規范,內部是由一系列的接口和抽象類構成。
JPA通過JDK 5.0註解描述對象-關系表的映射關系,並將運行期的實體對象持久化到數據庫中。
二、jpa_demo
step1:首先導入需要的依賴
<dependencies> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- hibernate對jpa的支持包 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.6.3.Final</version> </dependency> <!-- c3p0 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>5.6.1.Final</version> </dependency> <!-- log日志 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- Mysql and MariaDB --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> </dependencies>
step2:編寫實體類和數據庫表的映射配置[重點]
以客戶實體類為例(包含字段:custId,custName,custPhone)
在實體類上使用JPA註解的形式配置映射關系
@Entity @Table(name="cst_customer") public class Customer { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="cust_id") private Long custId; @Column(name="cust_name") private String custName; @Column(name="cust_phone") private String custPhone; getter/setter...
註解說明:
@Entity:聲明此類為實體類。
@Table(name="數據庫表名"):實體類和表的映射地址。
@Id:聲明當前屬性為主鍵。
@GeneratedValue(strategy=GenerationType.*):配置主鍵的生成策略
- TABLE:使用一個特定的數據庫表格來保存主鍵
- SEQUENCE:根據底層數據庫的序列來生成主鍵,條件是數據庫支持序列
- IDENTITY:主鍵由數據庫自動生成(主要是自動增長型)
- AUTO:主鍵由程序控制。
@Column
- 作用:指定實體類屬性和數據庫表之間的對應關系
- 屬性:
- name:指定數據庫表的列名稱。
- unique:是否唯一
- nullable:是否可以為空
- inserttable:是否可以插入
- updateable:是否可以更新
- columnDefinition: 定義建表時創建此列的DDL
- secondaryTable: 從表名。如果此列不建在主表上(默認建在主表),該屬性定義該列所在從表的名字搭建開發環境[重點]
step3:編寫配置文件屬性
yml文件:
數據庫配置:****** jpa: hibernate: ddl-auto: update show-sql: true
屬性說明:
hibernate.ddl-auto:
- create:啟動時刪數據庫中的表,然後創建,退出時不刪除數據表。
- create-drop:啟動時刪數據庫中的表,然後創建,退出時刪除數據表 如果表不存在報錯。
- update:如果啟動時表格式不一致則更新表,原有數據保留。
- validate:項目啟動表結構進行校驗 如果不一致則報錯。
show-sql:調用函數時,是否在控制臺打印sql語句。
step3編寫符合Spring Data JPA規范的Dao層接口
Spring Data JPA是spring提供的一款對於數據訪問層(Dao層)的框架,使用Spring Data JPA,隻需要按照框架的規范提供dao接口,不需要實現類就可以完成數據庫的增刪改查、分頁查詢等方法的定義,極大的簡化瞭我們的開發過程。
在Spring Data JPA中,對於定義符合規范的Dao層接口,我們隻需要遵循以下幾點就可以瞭:
創建一個Dao層接口,並實現JpaRepository和JpaSpecificationExecutor
提供相應的泛型
public interface CustomerDao extends JpaRepository<Customer, Long>, JpaSpecificationExecutor<Customer> { }
說明:
- JpaRepository:該接口為我們jpa提供瞭基本的簡單的增刪改查方法。
- JpaSpecificationExecutor:提供數據的復雜操作。
OK!現在我們就能對實體進行的簡單操作啦~
step4:編寫測試用例
public class DataTest { @Autowired private CustomerDao customerDao; /** * 保存一個客戶數據 * 調用save(obj)方法 */ @Test public void testSave() { Customer c = new Customer(); c.setCustName("掘金"); customerDao.save(c); }
執行測試用例查看數據庫顯示數據添加成功!
到此這篇關於搭建簡單的Spring-Data JPA項目的文章就介紹到這瞭,更多相關Spring-Data JPA搭建項目內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 解決springboot整合cxf-jaxrs中json轉換的問題
- 基於@Table註解無法使用及報紅的解決
- 在Spring Data JPA中引入Querydsl的實現方式
- Springboot如何根據實體類生成數據庫表
- SpringBoot集成H2內存數據庫的方法