jpa 真的不用自己建立資料庫嗎?懶人福音

2021-10-06 15:54:40 字數 2514 閱讀 4396

簡介:

spring data 專案的目的是為了簡化構建基於 spring 框架應用的資料訪問技術,包括非關聯式資料庫、

map-reduce 框架、雲資料服務等等;另外也包含對關聯式資料庫的訪問支援。

1、springdata特點

springdata為我們提供使用統一的api來對資料訪問層進行操作;這主要是spring data

commons專案來實現的。spring data commons讓我們在使用關係型或者非關係型資料訪問

技術時都基於spring提供的統一標準,標準包含了crud(建立、獲取、更新、刪除)、查詢、

排序和分頁的相關操作。

2、統一的repository介面

repository:統一介面

revisionrepository>:基於樂觀

鎖機制crudrepository:基本crud操作

pagingandsortingrepository:基本crud及分頁

3、提供資料訪問模板類 ***template;

如:mongotemplate、redistemplate等

4、jpa與spring data

1)、jparepository基本功能

編寫介面繼承jparepository既有crud及分頁等基本功能

2)、定義符合規範的方法命名

在介面中只需要宣告符合規範的方法,即擁有對應的功能

3)、@query自定義查詢,定製查詢sql

4)、specifications查詢(spring data jpa支援jpa2.0的criteria查詢)

druid和c3p0是乙個級別的,都是資料來源

mybatis是警察. druid是**庫(有很多槍). jdbc是**商(他們造槍給**庫). 當你需要一次"除暴安良"時,你需要去找警察,警察從**庫拿槍幹活. 以往的開發,是你使用jdbc直接造槍,然後自己幹活.

以前我們的應用程式直接使用orm框架,如hibernate,mybatis。但是不同的框架使用方法不一樣,而jpa讓我們以同樣的方式訪問不同的orm框架。常用的框架是hibernate。

jpa是乙個規範,不是框架

hibernate是jpa的實現

建立專案時候選中sql中的jpa,mysql,jdbc

打包方式war包

選中web

spring:

datasource:

url: jdbc:mysql:///bookstore?useunicode=true&characterencoding=utf-8&servertimezone=gmt%2b8

username: root

password: 111

driver-class-name: com.mysql.jdbc.driver

jpa:

hibernate:

#     更新或者建立資料表結構

ddl-auto: update

#   控制台顯示sql

show-sql: true

1)、編寫乙個實體類(bean)和資料表進行對映,並且配置好對映關係;

//使用jpa註解配置對映關係

@entity //告訴jpa這是乙個實體類(和資料表對映的類)

@table(name = "tbl_user") //@table來指定和哪個資料表對應;如果省略預設表名就是user;

public class user

3)、基本的配置jpaproperties

在主配置檔案中配置

spring:

datasource:

url: jdbc:mysql:///jpa?useunicode=true&characterencoding=utf-8

username: root

password: 111

driver-class-name: com.mysql.jdbc.driver

jpa:

hibernate:

#     更新或者建立資料表結構

ddl-auto: update

#   控制台顯示sql

show-sql: true

使用jpa

直接在controller方法中這樣使用就行

@restcontroller

public class usercontroller

​    public user insertuser(user user)​}

查詢:

新增:http://localhost:8080/user?lastname=zhangsan&email=aa

個人:不用自己建立資料庫,操作簡單,不用自己寫那麼多sql語句,之後將學習一下jpa,畢竟一行**就搞定了之前好多行**就可以搞定的事情

你真的了解列式資料庫嗎

傳統的關係型資料庫是行式資料庫,因為關聯式資料庫是按照行來儲存資料的,而列式資料庫就是按照列來儲存資料的資料庫。行式資料庫的主要優勢有以下兩點。第一點是業務同時讀取多列的時候,效率比較高,因為這些列都是按行儲存在一起的,一次磁碟操作就能夠把一行資料中的列都讀到記憶體中,第二點,是能夠一次性完成對一行...

建立自己的資料庫

type tmember record name string 50 email string 30 posts longint end varmembers array 1.50 oftmember varf file oftmember write data var f file oftmemb...

你真的懂資料庫的索引嗎(下篇)

mysql對索引的選擇 給字串加索引 select id from t where a 1 對於上述這條select語句,首先從b 樹的樹根開始,按層搜尋到葉子節點,然後再根據二分法來定位記錄。只能說兩者的查詢效率差別不大,innodb的資料是按照頁為單位來讀寫的,當讀到一條記錄的時候,並不是把這個...