spring 可以整合多個orm 框架,並且springdata jpa 的底層實現是由hibernate 實現這篇筆記的主要目的是為了hibernate 的了解,在springboot 中使用資料orm框架是springdata jpa但是jpa的底層實現是hibernate , 所以還是要大概了解一下,hibernate 作為乙個orm 的框架,它都幹了些什麼事。1. 類到資料表對的生成2.使用hibernate 如何完成sql 語句的編寫,完成相應增啥改查方法的執行
整個部落格比較重要的兩個點,就是資料表的生成的那個配置檔案,和hibernate 的使用spring 整合hibernate的什麼或者說,如何整合?
使用spring的ioc生成hibernate 的sessionfactory
讓hibernate 使用spring的宣告事務
在hibernate.cfg.xml 檔案中配置:這是在匯入hibernate 之後生成的乙個配置檔案
可以在裡面完成基本的hibernate 配置
在spring的配置檔案bean.xml 中配置 資料來源,hibernate,事務(事務和aop 相關聯)
"sessionfactory"
class
="org.springframework.orm.hibernate4.localsessionfactorybean"
>
name
="ddatasource"
ref="datasource"
>
property
>
name
="configlocation"
value
="classpath:hibernate.cfg.xml"
>
name
= value
="classpath:檔案的位置"
>
// 進行測試的時候的問題,我們如何使用hibernate
//獲取配置檔案中的sessionfactory bean
@autowired
private sessionfactory sessionfactory;
//獲取當前執行緒繫結的session
public session getsession()
//測試
string hsql =
"select b.stock from book b where b.id=?"
;int staock =
(int
)getsession()
.createquery
(hsql)
.setstring(0
,1).
uniqueresult()
;/**
*這幾個方法的意思:
*createquery(hsql 語句):可以理解為這個函式將我們寫的hsql 語句變成了正真的sql 語句
*setstring(第幾個引數/從0開始,引數的值)
*uniqueresult(): 執行什麼方法
Spring開發遇到的問題集
1 事務回滾是以何種方式進行,配置到那一層才會生效,事務處理的原理如何?2 aop pointcut expression的配置如何寫?3 批量操作增加2000臺伺服器,包含在乙個事務裡面處理與包含在2000個事務裡面處理,時間相差比較大。即使在2000個事務裡面沒有做資料庫操作,消耗的時間也是比較...
Spring 面試題集綿
問題1 spring事務失效的場景?答 a.資料庫引擎不支援事務 b.沒有納入spring管理範圍 c.註解所在的方法不是public修飾的 d.發生了自呼叫問題 e.所用資料來源沒有配置事務管理器 f.異常 捉或拋異常錯誤 g.引入shiro中許可權註解 h.發生了spring父子上下文重疊 可參...
Spring 使用Spring建立物件
xmlversion 1.0 encoding utf 8 beans xmlns xmlns xsi xmlns p xsi schemalocation spring beans 4.1.xsd beans 2.編寫domain,dao,service 3.在spring中註冊元件 要sprin...