版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)Spring+JDBC組合開準(zhǔn)備測試用的數(shù)據(jù)庫與createdatabaseidINTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,nameVARCHAR(45),ageINTEGERUNSIGNED,PRIMARYKEY(`id`))配置數(shù)據(jù)源c3p0c3p0的jar包添加到工程中。我們在配置時把數(shù)據(jù)庫連接信perties文件中。使用外部的properties ceholderlocation="classpath:perties"定義c3p0<beanid="dataSource" boPooledDataSource"><propertyname="jdbcUrl"<propertyname="driverClass"<propertyname="user"<propertyname="password"<!--初始化時獲取三個連接,取值應(yīng)在minPoolSize與maxPoolSize之間。Default3<propertyname="initialPoolSize"<!--連接池中保留的最小連接數(shù)。Default3<propertyname="minPoolSize"<!--連接池中保留的最大連接數(shù)。Default15<propertyname="maxPoolSize"<!--當(dāng)連接池中的連接耗盡的時候c3p0一次同時獲取的連接數(shù)。Default3<propertyname="acquireIncrement"<!--最大空閑時間,1800秒內(nèi)未使用則連接被丟棄,若為0則永不丟棄。Default0<propertyname="maxIdleTime"jdbcUrljdbcUrl=jdbc:mysql://localhost:3306/jdbcdriverClass=com.mysql.jdbc.Driverusername=rootpassword=配置 <!--<!--定義 te--<bean te" <propertyname="dataSource" teexecute(..)方publicpublicvoidaddUser(finalUseruser) te.execute(newConnectionCallback()public nConnection(ConnectionthrowsSQLException, ceptionStringsql="insertintot_user(name,age)values(?,?)";PreparedStatementps=con.prepareStatement(sql);ps.setString(1,user.getName());ps.setInt(2,user.getAge());return}}使用 te做增刪改操insertpublicvoidaddUser(finalUseruser) te.update("insertintot_user(name,age)newObject[user.getName()user.getAge(有null}updatepublicvoidupdateUser(Useruser) te.update("updatet_usersetname=?,age=?whereid=?",newObject[]{user.getName(),user.getAge(),user.getId()}deletepublicvoiddeleteUser(Integerid) te.update("deletefromt_userwhereid=?",newObject[]{id} 使用 te做查詢操publicUserqueryById(finalIntegerid)Stringsql="selectname,agefromt_userwherereturn te.queryForObject(sql,newObject[]{id},new{publicObjectmapRow(ResultSetrs,introwNum)throwsSQLException{Stringname=rs.getString("name");intage=returnnewUser(id,name,}}publicList<User>queryAll()Stringsql="selectid,name,agefromreturn te.query(sql,newRowMapper()publicObjectmapRow(ResultSetrs,introwNum)throwsSQLException{Integerid=rs.getInt(1);Stringname=rs.getString(2);Integerage=rs.getInt(3);returnnewUser(id,name,age);}}publicintqueryCount()Stringsql="selectcount(*)fromreturn 事務(wù)管事務(wù)的此過程種出現(xiàn)了差錯,比一條SQL語句沒有執(zhí)行成功,那么這一組操作都將全部回僅用四個詞解釋事務(wù)Isolate(性):用戶間操作不相數(shù)據(jù)庫系統(tǒng)的四種事務(wù)級允許在并發(fā)事務(wù)已經(jīng)提交后??煞乐古K讀,但幻讀和不對相同字段的多次是一致的除非數(shù)據(jù)被事務(wù)本身改變完全服從ACID的級別,確保不發(fā)生臟、幻、不可重復(fù)讀這在所有的級別中是最慢的,它是典型的通過完全鎖定在 ReadCommited:讀已提交數(shù)據(jù)(會出現(xiàn)不可重復(fù)讀和幻讀RepeatableRead:可重復(fù)讀(會出現(xiàn)幻讀臟讀不可重復(fù)讀到另一事務(wù)已提交的更新數(shù)據(jù)。相反,“可重復(fù)讀”在同一事務(wù)中多次數(shù)據(jù)時,能夠保證幻讀不同的級別采用不同的鎖類型來實現(xiàn),在四種級別中,Serializable的 mited的級別最低。大多數(shù)據(jù)庫默認(rèn)的級別為ReadCommited,如當(dāng)然也有少部分?jǐn)?shù)據(jù)庫默認(rèn)的級別為Repeatable_Read,如Oracle數(shù)據(jù)庫支持READCOMMITTED和SERIALIZABLE兩種事務(wù)性級別,不支持READMITTED和REPEATABLEREAD這兩種性級別。雖然SQL標(biāo)準(zhǔn)定義的默認(rèn)事務(wù)性級別是SERIALIZABLE,但是Oracle數(shù)據(jù)庫默認(rèn)使用的事務(wù)性READCOMMITTED.標(biāo)準(zhǔn)中定義4種,MySQL支持4種,Oracle2種。默認(rèn)值也不一樣Spring對事務(wù)管理的支Spring提供了兩種事務(wù)管理方式:你可以通過程序代碼來控制你的事務(wù)何時開始,何時結(jié)束等,與后面介紹的式事務(wù)管理式事務(wù)管理如果你并不需要細(xì)粒度的事務(wù)控制,你可以使用式事務(wù),在g中,你只需要gg件中移除該設(shè)置如果使用Spring,我們就不再需要手工控制事務(wù)事務(wù)規(guī)則(行為行意(默認(rèn)值如果沒有活動事務(wù),則按REQUIRED屬性執(zhí)行.它使用了一個單獨(dú)的事務(wù),DataSourceTransactionManager事務(wù)事務(wù)管在單一的ce中的管理當(dāng)持久化機(jī) e當(dāng)持久化機(jī)制是Jdo使用一個JTA實現(xiàn)來管理事務(wù)。在一個事務(wù)多個資源時必須使當(dāng)ojb用作持久化機(jī)制式事務(wù)管理——基于XML配<<beansxmlns=""""""1,配置事務(wù)管理器(應(yīng)根據(jù)情況使用合適的事務(wù)管理器)<beanid="transactionManager"<propertyname="dataSource"2,配置管理事務(wù)的“通知<tx:adviceid="txAdvice"transaction-指定所有以add,delete,update開頭的方法都使用事務(wù),默認(rèn)read-only="false"--><tx:methodname="add*"<tx:methodname="delete*"<tx:methodname="update*"指定所有以query<tx:methodname="query*"read-only="true"3<!--指 所有Dao中的方法--<aop:advisoradvice-ref="txAdvice"pointcut="execution(*<tx:adviceid="txAdvice"transaction-<!--thetransactionalsemantics...--<!--allmethodsstartingwith'get'areread-only--<tx:methodname="get*"read-<!--othermethodsusethedefaulttransactionsettings(seebelow)--<tx:method1.2.7.式事務(wù)管理——基于注解配////publicvoidaddUser(finalUseruser) te.update("insertintot_user(name,age)newObject[]{user.getName(),user.getAge()}//@Transactional(readOnly=publicintqueryCount()Stringsql="selectcount(*)fromreturn }方法的事務(wù)設(shè)置將被優(yōu)先執(zhí)行。例如:UserServiceImpl類在類的級別上被注解為只@Transactional注解可以被繼承,即:在父類上了這個注解,則子類中的所Hibernate3整分別添加Hibernate3Spring的開發(fā)環(huán)Spring中配置配置SessionFactory<beanid="sessionFactory"<propertyname="configLocation"<property<bean <propertyname="jdbcUrl"<propertyname="driverClass"<propertyname="user"<propertyname="password"<propertyname="initialPoolSize"<propertyname="maxPoolSize"<propertyname="minPoolSize"<propertyname="acquireIncrement"<propertyname="maxIdleTime"在Spring中配置式事務(wù)管自動掃描與裝配bean ponent-scanbase-<!--對象<beanid="transactionManager"<propertyname="sessionFactory"<tx:annotation-driventransaction-manager="transactionManager"方法一:使用 <!--<!--配置 te--<bean <propertyname="sessionFactory"略方法二:使用注入的SessionFactory(推薦//在類上 publicclassUserDaoImplimplementsUserDao注入sessionFactoryprivateSessionFactory//publicvoidsave(Useruser){}//publicvoiddelete(Longid)Objectobj=getSession().get(User.class,}////@Tran
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑垃圾清運(yùn)與城市環(huán)境美化施工合同
- 2025年度數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)員工勞務(wù)合同范本
- 2025年度工地現(xiàn)場安全監(jiān)控管理系統(tǒng)施工合同
- 2025年度個人信用卡透支合同示范文本
- 2025年度婚慶場地租賃合同二零二五年度升級版
- 2025年度廣告公司店面裝修合同正規(guī)范本(二零二五版)
- 2025年度國際原油期貨交易購銷合同
- 2025年度智慧城市建設(shè)項目合同簽訂流程及管理制度詳解
- 2025年度建筑沉降觀測與建筑抗震加固合同
- 2025年度智能電網(wǎng)規(guī)劃設(shè)計與建設(shè)合同協(xié)議
- 農(nóng)電公司績效考核管理辦法
- 斜拉橋施工技術(shù)之斜拉索圖文并茂
- 心肌梗死的心電圖改變
- 三星SHP-DP728指紋鎖說明書
- 預(yù)應(yīng)力錨索張拉及封錨
- 烤煙生產(chǎn)沿革
- GB 1886.227-2016食品安全國家標(biāo)準(zhǔn)食品添加劑嗎啉脂肪酸鹽果蠟
- 毛澤東思想課件-第七章 毛澤東思想的活的靈魂
- 公共關(guān)系效果的評估課件
- 建筑施工安全員理論考核試題與答案
- 高速公路用地勘測定界及放線定樁技術(shù)標(biāo)書
評論
0/150
提交評論