簡介:
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:1)、編寫乙個實體類(bean)和資料表進行對映,並且配置好對映關係;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
//使用jpa註解配置對映關係3)、基本的配置jpaproperties@entity //告訴jpa這是乙個實體類(和資料表對映的類)
@table(name = "tbl_user") //@table來指定和哪個資料表對應;如果省略預設表名就是user;
public class user
在主配置檔案中配置
spring:使用jpadatasource:
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
直接在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的資料是按照頁為單位來讀寫的,當讀到一條記錄的時候,並不是把這個...