锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲午夜av影院,91亚洲导航深夜福利,亚洲乱码日产一区三区 http://m.tkk7.com/tommyjian/category/23424.html鐢熸椿灝辨槸涓涓洰鏍囷紝鎺ョ潃涓涓洰鏍囥?/description>zh-cn Fri, 29 Jun 2007 16:45:55 GMT Fri, 29 Jun 2007 16:45:55 GMT 60 緲昏瘧錛歩BATIS 3.0 鑽夋鈥斺斾嬌鐢ㄦ爣娉ㄨ繘琛岄厤緗?/title> http://m.tkk7.com/tommyjian/archive/2007/06/29/127054.htmlTommy Jian Tommy Jian Fri, 29 Jun 2007 05:35:00 GMT http://m.tkk7.com/tommyjian/archive/2007/06/29/127054.html http://m.tkk7.com/tommyjian/comments/127054.html http://m.tkk7.com/tommyjian/archive/2007/06/29/127054.html#Feedback 0 http://m.tkk7.com/tommyjian/comments/commentRss/127054.html http://m.tkk7.com/tommyjian/services/trackbacks/127054.html 浣跨敤鏍囨敞榪涜閰嶇疆
鏍囨敞鐜板湪宸茬粡寰堟祦琛屼簡錛岃澶氫漢閫夋嫨瀹冧綔涓篨ML鐨勬浛浠f潵榪涜鍏冩暟鎹紪紼嬨傛爣娉ㄤ腑涓嶅簲璇ュ寘鍚厤緗俊鎭紝鑰宨BATIS閫氳繃XML鏉ヨ繘琛岀殑宸ヤ綔涔熶笉鍏夋槸閰嶇疆銆?/p>
閭d箞浠涔堟槸閰嶇疆錛屼粈涔堝張涓嶆槸鍛紵鐩墠錛宨BATIS鐨刋ML鏂囦歡鍖呭惈浜嗕笁鏂歸潰錛?/p>
褰撴?zhèn)ㄦ妸鐜璁揪|敼鍙樺悗錛屾?zhèn)ㄥ悓鏃朵篃闇瑕佹洿鏀歸厤緗紝渚嬪鏁版嵁搴撹繛鎺ラ厤緗佷簨鍔$鐞嗛厤緗瓑絳夈傚綋鎮(zhèn)ㄥ皢搴旂敤鍒嗗彂鍒頒笉鍚岀殑鏁版嵁搴擄紝鑰屼笖涔熶嬌鐢ㄤ簡涓浜涗笓鏈夌殑SQL璇彞鍚庯紝閰嶇疆涓彲鑳借繕瑕佸寘鍚玈QL鏂硅█鐨勪竴浜涢厤緗俊鎭傚湪iBATIS 3.0涓垜浠彲浠ュ皢榪欎簺淇℃伅鍖呭惈榪涘幓錛屽洜姝わ紝鎮(zhèn)ㄩ渶瑕侀拡瀵瑰縐嶆柟璦榪涜緙栫爜錛堝綋鐒惰繖鏄墜宸ョ殑錛夛紝涓哄畠浠懡鍚嶏紝騫跺皢瀹冧滑閰嶇疆鍒伴傚綋鐨勪綅緗傞厤緗俊鎭笉搴旇琚寘鍚湪Java婧愭枃浠朵腑銆?/p>
鍏冩暟鎹俊鎭寘鎷濡傜粨鏋滄槧灝勩佸弬鏁版槧灝勫拰緙撳瓨妯″瀷涔嬬被鐨勪俊鎭傝繖浜涗俊鎭帶鍒秈BATIS濡備綍鏄犲皠鎮(zhèn)ㄧ殑鏁版嵁浠ュ強(qiáng)榪欎簺鏄犲皠鐨勫叿浣撹〃鐜般?/p>
緙栫爜鍖呮嫭SQL浠ュ強(qiáng)鍔ㄦ佺殑SQL璇彞銆?/p>
閭d箞鏍囨敞搴旇鎵挎媴浠涔堟牱鐨勮亴璐e憿錛?/p>
涓鑸儏鍐典笅錛屽彧鏈夊厓鏁版嵁淇℃伅姣旇緝閫傚悎浣跨敤鏍囨敞鏉ユ弿榪般傞厤緗簲璇ラ氳繃灞炴ф枃浠舵垨鑰匵ML鏂囦歡鏉ュ疄鐜般傜紪鐮佷篃鍙兘閫氳繃Java鏂囦歡鎴栬匵ML鏂囦歡鏉ュ疄鐜般傛洿榪涗竴姝ョ湅錛屾爣娉ㄥ彧鑳界敤鏉ユ弿榪扮浉瀵硅緝綆鍗曠殑鍏冩暟鎹俊鎭傛湁鏃訛紝鏍囨敞錛堢壒鍒槸鍦↗ava涓級涔熶細(xì)浣夸簨鎯呭彉寰楁洿鍔犲鏉傦紝浣夸唬鐮佹洿鍔犳櫐娑╅毦鎳傘?/p>
鍥犱負(fù)涓婇潰鐨勫師鍥狅紝鎵浠ユ垜鎺ㄨ崘鍙皢鏍囨敞浣滀負(fù)綰﹀畾閰嶇疆鐨勬浛浠i厤緗傝繖灝辨槸璇達(dá)紝浣跨敤榪欑閰嶇疆鏂瑰紡鍙互杈懼埌涓瀹氱殑鏁堟灉錛屼絾鏄篃浠呬粎闄愪簬姝ゃ?/p>
鍐嶄竴嬈″己璋冿紝C#鐨凙ttribute鍦ㄦ煇浜涙柟闈㈣寮轟簬Java鐨勬爣娉細(xì)
鏀寔澶氳瀛楃涓詫紝榪欎嬌寰楀唴宓孲QL緙栫爜浠や漢鎰熷埌鎰夊揩
鏀寔浣跨敤鍚屼竴鏍囨敞澶氭錛岃屽湪Java涓垯闇瑕侀氳繃闆嗗悎鏍囨敞鏉ュ疄鐜?/li>
鏀寔欏哄簭鍜屽懡鍚嶅弬鏁幫紝榪欎嬌寰椾唬鐮佸彉寰楁洿鍔犵畝鏄庢壖瑕?/li>
涓嬮潰榪欎釜渚嬪瓙灞曠ず浜嗗浣曚嬌鐢↗ava涓殑鏍囨敞鏉ュ畬鎴愰厤緗細(xì)
// // Simple select, string concatenation, inline results(!) and inline parameters // @Select("SELECT #id(EMP_ID:NUMERIC), #firstName(FIRST_NAME:VARCHAR), #lastName(LAST_NAME:VARCHAR) " + "FROM EMPLOYEE") List selectAllEmployees(); // // Alternative syntax using an array of strings instead of string concatenation...can be "smarter" than concatenation // @Select({"SELECT #id(EMP_ID:NUMERIC), #firstName(FIRST_NAME:VARCHAR), #lastName(LAST_NAME:VARCHAR) ", "FROM EMPLOYEE", "WHERE EMP_ID = @id"}) Employee selectEmployee(int id); // // Inserts look as you might expect. We can use getGeneratedKeys to get autogen key values, selectkey still supported // @Insert({"INSERT INTO EMPLOYEE (EMP_ID, FIRST_NAME, LAST_NAME)", "VALUES (@id, @firstName, @lastName)"}) void insertEmployee(Employee emp); // // Nothing special about update // @Update({"UPDATE EMPLOYEE SET", "EMP_ID=@id(NUMERIC:IN), FIRST_NAME=@firstName(VARCHAR:IN), LAST_NAME=@lastName(VARCHAR:IN)"}) void updateEmployee(Employee emp); // // Delete is obvious. // @Delete("DELETE EMPLOYEE WHERE EMP_ID = @id") void deleteEmployee(int id);
涓嬮潰榪欎釜渚嬪瓙瑕佹洿鍔犲鏉備竴浜涳紝鍍忚繖縐嶄嬌鐢ㄤ簡濡傛澶氱殑鏍囨敞鐨勬儏鍐靛氨搴旇鑰冭檻浣跨敤XML鏂囦歡鏉ヨ繘琛岄厤緗傝繖縐嶆儏鍐典笅錛屾垜鎯寵薄鏍囨敞鑳藉鎻愪緵涓鍒囧姛鑳斤紝鍗砐ML涓疄鐜扮殑鍔熻兘閫氳繃鏍囨敞涔熻兘瀹屾垚銆傜劧鑰岋紝鎴戜滑榪樻槸寤鴻鎮(zhèn)ㄥ湪闈㈠澶嶆潅鐨勬儏鍐墊椂浣跨敤XML鏉ヨ繘琛岄厤緗傛垨璁告煇浜涗漢涓嶆槸鐗瑰埆鍦ㄦ剰浣跨敤XML閰嶇疆錛屾墍浠ユ垜浠負(fù)浠栦滑鎻愪緵浜嗘爣娉ㄩ厤緗柟寮忋?/p>
// // complex stuff // @ResultClass (Company.class) @ConstructorResults({ @Result(property="id", column="C.COMP_ID"), @Result(property="name", column="C.NAME") }) @PropertyResults({ @Result(property="departments.id", column="D.DEPT_ID"), @Result(property="departments.name", column="D.NAME"), @Result(property="departments.employee.id", column="E.EMP_ID"), @Result(property="departments.employee.firstName", column="E.FIRST_NAME"), @Result(property="departments.employee.lastName", column="E.LAST_NAME") }) @Collections ({ @Collection(type=Department.class, property="departments", groupBy="id"), @Collection(type=Employee.class, property="departments.employees", groupBy="departments.id") }) @Select("SELECT #id, #name, " + "#departments.id, #departments.name, " + "#departments.employees.id, #departments.employees.firstName, " + "#departments.employees.lastName " + "FROM COMPANY C, DEPARTMENT D, EMPLOYEE E " + "WHERE D.DEPT_ID = E.DEPT_ID " + "AND C.COMP_ID = D.COMP_ID") List selectAllCompaniesWithJoin(); /* * NESTED QUERIES */ @ResultClass (Company.class) @FieldResults({ @Result(property="id", column="COMP_ID"), @Result(property="name", column="NAME") }) @PropertyResults({ @Result(property="departments", nestedQuery=@QueryMethod(type=CompanyMapper.class, methodName="getDepartmentsForCompany", parameters="id")) }) @Select("SELECT #id, #name FROM COMPANY C ") List selectAllCompaniesWithNestedQueries(); @ResultClass (Department.class) @PropertyResults({ @Result(property="id", column="DEPT_ID"), @Result(property="name", column="NAME"), @Result(property="employees", nestedQuery=@QueryMethod(type=CompanyMapper.class, methodName="getEmployeesForDeparment", parameters="id")) }) @Select("SELECT #id, #name FROM DEPARTMENT WHERE COMP_ID = @id ") List getDepartmentsForCompany(int id); @ResultClass (Employee.class) @PropertyResults({ @Result(property="id", column="EMP_ID"), @Result(property="firstName", column="FIRST_NAME"), @Result(property="lastName", column="LAST_NAME") }) @Select("SELECT #id, #firstName, #lastName FROM EMPLOYEE WHERE EMP_ID = @id ") List getEmployeesForDepartment(int id);
]]>緲昏瘧錛歩BATIS 3.0 鑽夋鈥斺旂害瀹氫織鎴愮殑閰嶇疆鏂瑰紡 http://m.tkk7.com/tommyjian/archive/2007/06/26/126256.htmlTommy Jian Tommy Jian Tue, 26 Jun 2007 01:47:00 GMT http://m.tkk7.com/tommyjian/archive/2007/06/26/126256.html http://m.tkk7.com/tommyjian/comments/126256.html http://m.tkk7.com/tommyjian/archive/2007/06/26/126256.html#Feedback 0 http://m.tkk7.com/tommyjian/comments/commentRss/126256.html http://m.tkk7.com/tommyjian/services/trackbacks/126256.html 綰﹀畾淇楁垚
Clinton璇達(dá)細(xì) 榪欎竴鐐規(guī)槸涓庢垜浠互鍓嶆墍鍧氭寔鐨勫師鍒欎笉鐩哥鍚堢殑銆傝璇嗘垜鐨勪漢閮界煡閬撴垜鍩烘湰涓婄畻鏄竴涓畬緹庣殑浜恒備絾鏄鏋滄垜浠粠鏈浣?jīng)_疄璺電殑瑙掑害鍘昏冭檻錛屾垜浠繀欏誨湪瑙e喅澶嶆潅闂鐨勬椂鍊欎篃浣跨敤灝介噺綆鍗曠殑瑙e喅鏂規(guī)銆傚綋鐒訛紝閭d簺涓嶅お鍠滄綰﹀畾淇楁垚寮忛厤緗殑浜哄彲浠ュ拷鐣ヨ繖縐嶉厤緗柟寮忋備絾鏄垜鐩鎬俊榪欐槸闈炲父鏈夌敤鐨勶紝鐗瑰埆鏄鎻掑叆銆佸垹闄ゅ拰鏇存柊鎿嶄綔鏉ヨ銆備嬌鐢ㄨ繖縐嶉厤緗柟寮忥紝涓浜涚畝鍗曠殑鏌ヨ涔熷皢浠庝腑鍙楃泭銆?/p>
榛樿鎯呭喌涓嬶紝iBATIS 3.0灝嗕嬌鐢ㄧ害瀹氫織鎴愬紡鐨勯厤緗柟寮忋侸ava 5鐨勬柟娉曡涔変腑宸茬粡鍖呭惈浜嗙敓鎴怱QL銆佽繘琛屽弬鏁板拰緇撴灉鏄犲皠瓚沖鐨勪俊鎭備緥濡傦細(xì)
Employee getEmployee (int id);
榪欎簺淇℃伅瀵逛簬鐢熸垚浠ヤ笅SQL宸茬粡瓚沖浜嗭細(xì)
SELECT id, firstName, lastName FROM Employee WHERE id = ?
緇撴灉綾誨瀷涓庢柟娉曠殑榪斿洖鍊肩被鍨嬫槸涓鑷寸殑銆傚洜涓烘柟娉曠殑榪斿洖鍊肩被鍨嬩笉鏄泦鍚堢被鍨嬶紝鎵浠ユ垜浠煡閬撴鍦ㄥ鐞?#8220;Select One”璇箟銆傝〃鐨勫悕縐拌鍋囧畾涓轟笌緇撴灉綾誨瀷鐨勫悕縐頒竴鑷淬傝屾煡璇㈠弬鏁板氨琚亣瀹氫負(fù)鏂規(guī)硶瀵瑰簲鐨勫弬鏁般傚湪浣跨敤鍏朵粬鐨勯厤緗柟寮忕殑鏃跺欙紝鎴戜滑鍙互鏇存敼榛樿ID鍙傛暟鐨勯厤緗係QL璇彞涓殑鍚勬暟鎹垪鍋囧畾涓庢柟娉曡繑鍥炵被鍨嬬殑鍚屽悕灞炴т竴涓瀵瑰簲錛屽綋鐒惰繖浜涢厤緗兘鏄彲浠ユ洿鏀圭殑銆?/p>
闆嗗悎綾誨瀷涔熸槸浠ュ悓鏍風(fēng)殑鏂瑰紡宸ヤ綔錛?/p>
List listAllEmployees ();
榪欎釜渚嬪瓙灝嗕駭鐢熶互涓婼QL璇彞錛?/p>
SELECT id, firstName, lastName FROM Employee
鎴戜滑鍙互灝嗚繖涓緥瀛愬彨鍋?#8220;Select Many”錛屽洜涓鴻繖涓柟娉曡繑鍥炰簡涓涓泦鍚堢被鍨嬨傛垜浠煡閬揥here瀛愬彞涓虹┖錛屽洜涓鴻繖涓柟娉曟病鏈変換浣曞弬鏁般?/p>
濡傛灉鎴戜滑鎯充嬌鐢ㄥ弬鏁板紡鏌ヨ錛屾垜浠彲浠ヨ繖鏍鋒潵鍋氾細(xì)
List findEmployeesLike(Employee employee);
鍋囪鍙湁鍙傛暟鐨刲astName錛岃屽叾浠栧紩鐢ㄧ被鍨嬮兘涓簄ull鍊鹼紝鍘熷綾誨瀷閮借璁劇疆涓洪潪娉曟棤鎰忎箟鐨勫鹼紙姣斿-1錛夛紝鎴戜滑灝嗗緱鍒頒互涓嬬殑SQL璇彞錛?/p>
SELECT id, firstName, lastName FROM Employee WHERE lastName = 'Begin'
鎴栬呭彲浠ョ洿鎺ユ寜鍙傛暟鏉ヨ繘琛岋細(xì)
List findEmployeeByLastNameAndFirstName (String last, String first);
榪欏皢鐢熸垚浠ヤ笅鐨凷QL璇彞錛?/p>
SELECT id, firstName, lastName FROM Employee WHERE lastName = 'Begin' AND firstName = 'Clinton'
鍥犱負(fù)C#鏀寔鍙傛暟鍚嶇О鐨勫弽灝勶紝鎵浠#瀵硅繖縐嶆柟娉曟彁渚涗簡鏇村ソ鐨勬敮鎸併傚艦寮忎笂涔熷彉寰楃浉瀵規(guī)竻鏅幫紝褰撶劧瀹炶川鏄竴鏍風(fēng)殑錛?/p>
// C# IList FindEmployeesLike(string lastName, string firstName); // And in C# 3.0, we can use anonymous types: IList FindEmployeesLike(object obj); //... IList employees = mapper.FindEmployeesLike(new {LastName="Begin", FirstName="Clinton"});
鏇存柊鎿嶄綔涔熶互鐩稿悓鐨勬柟寮忔搷浣滐細(xì)
void insertEmployee (Employee emp); void updateEmployee (Employee emp); void deleteEmployee (Employee emp);
涔熷彲浠ヨ嚜鍔ㄦ帴鍙楅泦鍚堝弬鏁幫細(xì)
int insertEmployee (List emps); // returns rows inserted int updateEmployee (List emps); // returns rows updated int deleteEmployee (List emps); // returns rows deleted
鐢熸垚鍣ㄧ浉褰撶殑鐏墊椿錛岃屼笖鍙互涓哄ぇ澶氭暟鍒犻櫎鐢氳嚦鏇存柊鎿嶄綔鐢熸垚涓鏉QL璇彞銆?/p>
]]>緲昏瘧錛歩BATIS 3.0 鑽夋鈥斺斿縐嶉厤緗柟寮?/title> http://m.tkk7.com/tommyjian/archive/2007/06/22/125784.htmlTommy Jian Tommy Jian Fri, 22 Jun 2007 03:23:00 GMT http://m.tkk7.com/tommyjian/archive/2007/06/22/125784.html http://m.tkk7.com/tommyjian/comments/125784.html http://m.tkk7.com/tommyjian/archive/2007/06/22/125784.html#Feedback 0 http://m.tkk7.com/tommyjian/comments/commentRss/125784.html http://m.tkk7.com/tommyjian/services/trackbacks/125784.html 澶氱閰嶇疆鏂瑰紡
iBATIS涓渶鍙よ佺殑灝辨槸鍏墮厤緗柟寮忋傚湪欏圭洰寮濮嬬殑鏃跺欙紝XML琚涓烘渶濂界殑閰嶇疆鏂瑰紡銆備簨瀹炰笂錛孹ML鐜板湪榪樻槸姣旇緝濂界殑閰嶇疆鏂規(guī)硶錛屽洜涓哄畠鏄繘琛屽鏉傜殑澶氳SQL閰嶇疆鐨勬渶浣蟲柟寮忋傚洜姝わ紝XML鐨勯厤緗柟寮忓皢浜堜互淇濈暀銆備絾鏄畠涓嶅啀鏄粯璁ょ殑閰嶇疆鏂瑰紡錛岃屼笖涔熶笉瑙佸緱鏄ぇ澶氭暟搴旂敤鐨勯閫夈?/p>
iBATIS 3.0灝嗕嬌鐢ㄥ縐嶉厤緗柟寮忋傝繖灝辨槸璇磇BATIS灝嗗彲浠ヤ嬌鐢ㄥ縐嶆柟寮忚繘琛岄厤緗紝鑰屼笖榪欎簺鏂瑰紡鍙互鍗忓悓宸ヤ綔銆傛寜鐓у疄鐢ㄦф帓搴忥紝鏈変互涓嬪洓縐嶆柟娉曪細(xì)
綰﹀畾淇楁垚
Java鐨勬爣璇嗭紙鍙互瑕嗙洊鍓嶄竴縐嶉厤緗殑閰嶇疆淇℃伅錛?/li>
XML錛堝彲浠ヨ鐩栧墠涓ょ閰嶇疆鐨勯厤緗俊鎭級
Java API錛堝彲浠ヨ鐩栦互涓婇厤緗殑閰嶇疆淇℃伅錛?/li>
]]> 緲昏瘧錛歩BATIS 3.0 鑽夋鈥斺斾簨鍔°佷細(xì)璇濆拰宸ュ巶綾燴斺擬apperFactory http://m.tkk7.com/tommyjian/archive/2007/06/20/125358.htmlTommy Jian Tommy Jian Wed, 20 Jun 2007 08:00:00 GMT http://m.tkk7.com/tommyjian/archive/2007/06/20/125358.html http://m.tkk7.com/tommyjian/comments/125358.html http://m.tkk7.com/tommyjian/archive/2007/06/20/125358.html#Feedback 0 http://m.tkk7.com/tommyjian/comments/commentRss/125358.html http://m.tkk7.com/tommyjian/services/trackbacks/125358.html 浜嬪姟銆佷細(xì)璇濆拰宸ュ巶綾燴斺擬apperFactory
鎴戜滑搴旇鍦ㄤ綍澶勮幏鍙?#8220;Mapper”鐨勫疄渚嬪憿錛熸垜浠粛鐒墮渶瑕佷竴涓牳蹇冪被鏉ュ畬鎴恑BATIS鐨勯厤緗拰鎺у埗銆傝繖涓牳蹇冪被鐨勫悕縐板皻鍦ㄤ簤璁轟箣涓紝浣嗘槸鎴戜滑涓嶅Θ鍏堝彨瀹僊apperFactory銆?/p>
閫氬父鎯呭喌涓嬶紝MapperFactory璐熻矗鏋勫緩浜嬪姟鍜屾槧灝勭被鐨勫疄渚嬨傝孧apperFactory鏈韓灝嗙敱鏌愪釜閰嶇疆綾繪潵鏋勫緩銆?/p>
MapperFactory factory = someConfiguration.buildMapperFactory(); EmployeeMapper employeeMapper = factory.getMapper (EmployeeMapper.class);
瀵逛簬榪欑鏂瑰紡鏄笉鏄細(xì)浣夸簨鎯呭彉寰楃畝鍗?..鎴栬浼?xì)鍚уQ佽嚦浜庝簨鍔★紝Clinton鏄繖鏍瘋鐨勶細(xì)“浼?xì)璇濈殑姒傚康搴旇鍜屼簨鍔$殑杩涜鍚堯q躲傚湪iBATIS涓紝浼?xì)璇濆拰浜嬪姟寰堝鏃跺欐槸涓鑷寸敋鑷蟲槸涓鏍風(fēng)殑銆備絾鏄畠浠洜涓轟竴浜涗漢涓虹殑鏋舵瀯鏂歸潰鐨勫師鍥犺岃鍒嗗紑浜嗐備細(xì)璇濇垨璁歌兘澶熷畬鎴愪笉灝戜換鍔★紝浣嗘槸鍏朵腑鐨?0%騫朵笉閫傚悎鐢ㄤ細(xì)璇濇潵瑙e喅銆傚悓鏍風(fēng)殑錛屾壒澶勭悊鎿嶄綔涔熶粠浜嬪姟涓垎紱誨嚭鏉ワ紝鍥犱負(fù)浜嬪姟鍦ㄦ彁渚涙壒澶勭悊鍔熻兘鏄線寰浼?xì)瀵艰嚧渥o(hù)浜虹敓鍘岀殑try/finally鐨勫閲嶅祵濂椼傚洜姝ゅ湪鎴戜滑鍙戠幇鐪熷疄鐨勯渶姹備箣鍓嶅簲璇ュ敖閲忛伩鍏嶈繖浜涖?#8221;銆?/p>
iBATIS鎴栬呭叾浠栫涓夋柟搴撳強(qiáng)瀹瑰櫒閮藉彲浠ヨ繘琛屼簨鍔″鐞嗐傜洰鍓嶏紝浜嬪姟鐨勫鐞嗘槸鐢盨qlMapClient瀹炰緥涓殑ThreadLocal瀹炰緥鏉ュ鐞嗙殑銆傚洜涓鴻繖縐嶅鐞嗘柟娉曪紝鎴戜滑閰嶅埌浜嗕笉灝戦棶棰樸備笉鏄嚭浜庢妧鏈殑鍘熷洜鑰屾槸鍥犱負(fù)浠g爜鏇村姞娓呮櫚錛屾垜浠彲浠ヤ嬌鐢ㄤ互涓嬬殑鏂規(guī)硶錛?/p>
Transaction tx = factory.startTransaction(); try { // do work tx.commit(); } finally { tx.end(); }
鎵瑰鐞嗘搷浣滃彲浠ョ畝鍗曞湴閫氳繃鍚姩鏀寔鎵瑰鐞嗘搷浣滅殑浜嬪姟鏉ヨ繘琛岋細(xì)
Transaction tx = factory.startBatch(); try { // do work // balk executes current batch immediately, returns total rows updated // (balks on non-batched transactions) int totalRowCount = tx.flush(); // commit executes batch too, returns total rows updated and commits totalRowCount = tx.commit(); } finally { tx.end(); }
涓庣幇鍦ㄧ殑浜嬪姟鐨凙PI綾諱技錛屾垜浠浜嬪姟鐨勯殧紱葷駭鍒互鍙?qiáng)鍏朵粬閫夐」鎻愪緵鏀寔銆?/p>
Transaction tx = factory.startTransaction(isolationLevel); try { // do work tx.commit(); } finally { tx.end(); }
濡傛灉絎笁鏂圭殑搴撴彁渚涗簡浜嬪姟澶勭悊鐨勬敮鎸侊紝閭d箞鍙楁墭綆$悊鐨勮繛鎺ュ璞″彲浠ヤ綔涓哄弬鏁頒紶鍏ワ細(xì)
// Can be handled by encapsulating framework (e.g. Spring) Transaction tx = factory.useConnection(conn); try { //...do work... tx.flush(); // executes batched updates immediately // commit simply calls commit on the connection // if local commits are allowed, otherwise it is ignored. tx.commit(); } finally { tx.end(); // Can also be handled by encapsulating framework (e.g. Spring) }
鎬諱箣錛岃繖鏍風(fēng)殑API鍗佸垎鐨勭畝媧侊紝鑰屼笖鏄撲簬涓庤濡係pring榪欐牱鐨勭涓夋柟妗嗘灦闆嗘垚銆侻apperFactory鍙互琚敞鍏ュ埌闇瑕佷簨鍔$鐞嗐佹壒澶勭悊鍜岄殧紱葷駭鍒殑Spring鐨凞AO瀵硅薄涓備負(fù)浜嗚繘涓姝ヨ繘琛屽繀瑕佺殑鍒嗙錛屾垜浠彲浠ュ皢浜嬪姟綆$悊鍔熻兘浠嶮apperFactory涓垎紱誨嚭鏉ワ紝鐢氳嚦浜庡厑璁稿紑鍙戣呭畾涔夎嚜宸辯殑浜嬪姟綆$悊鎺ュ彛錛屽悓鏃跺皢浜嬪姟綆$悊鐨勫姛鑳界粦瀹氬埌綾諱腑錛堣繖鏍鋒彁渚涗簡鏇村姞鏉捐﹀悎鐨勬灦鏋勶級銆?/p>
]]>緲昏瘧錛歩BATIS 3.0 鑽夋鈥斺旀帴鍙g粦瀹?/title> http://m.tkk7.com/tommyjian/archive/2007/06/19/125161.htmlTommy Jian Tommy Jian Tue, 19 Jun 2007 09:40:00 GMT http://m.tkk7.com/tommyjian/archive/2007/06/19/125161.html http://m.tkk7.com/tommyjian/comments/125161.html http://m.tkk7.com/tommyjian/archive/2007/06/19/125161.html#Feedback 4 http://m.tkk7.com/tommyjian/comments/commentRss/125161.html http://m.tkk7.com/tommyjian/services/trackbacks/125161.html 鎺ュ彛緇戝畾
闅忕潃Java 5鐨勬帹騫匡紝鎴戜滑鏈夋満浼?xì)鏉ユ敼鍠勭敤鎴蜂綋楠屻傚叾涓渶閲嶈鐨勬槸鍊熷姪Java 5鍙互娑堥櫎浠や漢鐢熸儜鐨勭被鍨嬭漿鎹紝鍙互娑堥櫎SQL鏄犲皠鍩轟簬瀛楃鐨勮皟鐢ㄦ柟寮忋備婦渚嬫潵璇達(dá)紝鐜板湪鍦ㄨ皟鐢⊿QL鏄犲皠鐨勬椂鍊欐槸榪欐牱鐨勶細(xì)
Employee employee = (Employee)sqlMapper.queryForList("getEmployee", 5); //...and... List employees = sqlMapper.queryForList("listAllEmployees");
闂鏄緢鏄庢樉鐨勩傜涓錛屼笂闈㈢殑涓や釜渚嬪瓙涓鏄犲皠鐨勮鍙ョ殑鍚嶇О閮芥槸鍩轟簬瀛楃涓茬殑錛岃岃繖寰堝鏄撳鑷撮敊璇傝繖縐嶆柟寮忎篃涓嶄細(xì)寰楀埌IDE宸ュ叿銆佺紪璇戝櫒鐨勬敮鎸佸拰綆$悊銆?/p>
絎簩涓棶棰樻槸瀛樺湪鍙傛暟鍜岃繑鍥炲肩被鍨嬪畨鍏ㄩ棶棰樸傚湪絎竴涓緥瀛愪腑錛岃皝鑳戒繚璇佸弬鏁扮殑綾誨瀷涓瀹氭槸Integer錛熻岃皝鍙堣兘淇濊瘉鎮(zhèn)ㄥ緱鍒扮殑榪斿洖鍊間竴瀹氭槸Employee綾誨瀷鍛紵榪欓噷錛岀紪璇戝櫒涔熶笉浼?xì)缁欏囖Z換浣曞伩閿欒鎶ュ憡鍜屾彁紺恒傝屽彧鏈夎繍琛屾椂寮傚父浼?xì)琚姏鍑恒?/p>
鏈鍚庯紝鍦ㄩ泦鍚堢殑渚嬪瓙涓棶棰樹篃鏄浉鍚岀殑銆傚湪榪愯鍓嶏紝鎮(zhèn)ㄥ彲鑳戒細(xì)鑾峰緱Dogs鐨勯泦鍚堬紝鑰屼笉鏄疎mployees銆?/p>
鎬諱箣錛岃繖縐嶆柟寮忚櫧鐒舵瘮JDBC寮猴紝浣嗘槸涔熻浜哄嶆劅闅懼彈錛岃繕鏄瓨鍦ㄦ敼鍠勭殑絀洪棿銆?/p>
鍦↗ava 5涓垜浠彲浠ュ厖鍒嗕嬌鐢ㄨ寖鍨嬫潵瑙勮寖闆嗗悎綾誨瀷銆傝繖鏍鳳紝鎴戜滑涓嶉渶瑕佽繘琛岀壒孌婄殑閰嶇疆灝卞彲浠ヤ負(fù)闆嗗悎綾誨瀷寤虹珛涓鑷寸殑API銆傛垜浠笉闇瑕佸湪XML鏂囦歡涓0鏄庣被鍨嬶紝涓嶉渶瑕侀氳繃瀛楃鍚嶇О鏉ヨ皟鐢ㄨ鏄犲皠鐨勮鍙ワ紝鐩稿弽錛屾垜浠彲浠ュ厖鍒嗗埄鐢ㄨ〃杈懼ソ涓旂被鍨嬪畨鍏ㄧ殑鎺ュ彛綾誨瀷銆傛病鏈変粈涔堟柊涓滆タ闇瑕佸涔?fàn)锛屽彧鏄櫘閫氱殑鎺ュ彛灝卞彲浠ヤ簡銆?/p>
public interface EmployeeMapper { Employee getEmployee (int employeeId); List listAllEmployees(); }
榪欏氨澶熶簡錛乮BATIS鏉ュ府鎴戜滑瀹炵幇榪欎釜鎺ュ彛銆?/p>
鐜板湪鎴戜滑鍙互浠ヤ竴縐嶆洿鍔犵畝媧佸拰瀹夊叏鐨勬柟寮忔潵璋冪敤琚槧灝勭殑璇彞浜嗐?/p>
Employee emp = empMapper.getEmployee(5); //...and... List employees = empMapper.listAllEmployees();
鍦ㄤ笂闈㈢殑璋冪敤涓病鏈夌被鍨嬭漿鎹€佹病鏈夊瓧絎︿覆錛岃屼笖鍙傛暟鍜岃繑鍥炲肩殑綾誨瀷鏄佸畨鍏ㄧ殑銆傞澶栫殑浠g爜灝辨槸閽堝鎺ュ彛浣跨敤XML鎴栬匤ava鐨勬爣璇嗚繘琛岄厤緗傛渶澶氭垜浠彧闇瑕侀厤緗甋QL璇彞銆侀渶瑕佽繘琛岄噸杞界殑鍙傛暟鎴栬呰繑鍥炲肩被鍨嬨?/p>
鎺ュ彛鎻忚堪浜嗘墍闇瑕佺殑涓鍒囥?/p>
璇彞鐨勫悕縐幫紙榛樿鎯呭喌涓嬩笌鏂規(guī)硶鐨勫悕瀛椾竴鑷達(dá)級
鍙傛暟綾誨瀷錛堝鏋滃瓨鍦ㄧ殑璇濓級
榪斿洖鍊肩被鍨嬶紙鍖呮嫭鑼冨瀷闆嗗悎鐨勫厓绱犵殑綾誨瀷錛?/li>
鑰屽叾涓渶鏈夎叮鐨勫氨鏄垜浠彲浠ュ熀浜庢柟娉曞悕縐拌繖鏍風(fēng)殑綰﹀畾鏉ョ敓鎴怱QL鏄犲皠銆備互鍚庡叧浜庨厤緗殑绔犺妭涓皢璇︾粏璁ㄨ榪欎簺緇嗚妭銆?/p>
鎺ュ彛緇戝畾鐨勬柟娉曚嬌寰楄濡係pring榪欐牱鐨勬鏋跺皢鏄犲皠綾繪敞鍏ュ叾浠栫被鍙樺緱瀹規(guī)槗錛屽悓鏃朵篃涓嶉渶瑕佸皢浜嬪姟綆$悊鐨勮繃澶氱粏鑺傚叕寮銆?/p>
]]>
主站蜘蛛池模板:
黑人粗长大战亚洲女2021国产精品成人免费视频
|
国产视频精品免费视频 |
亚洲精品你懂的在线观看 |
免费A级毛片无码A∨ |
亚洲国产无线乱码在线观看
|
久久精品国产亚洲AV电影网 |
亚洲片一区二区三区 |
色www永久免费 |
国产精品亚洲综合五月天 |
亚洲成av人片一区二区三区 |
小草在线看片免费人成视久网 |
亚洲小说图区综合在线 |
国产亚洲情侣一区二区无码AV
|
亚洲精品成人在线 |
外国成人网在线观看免费视频 |
久久亚洲中文无码咪咪爱 |
久久夜色精品国产亚洲 |
国产人成免费视频 |
51精品视频免费国产专区 |
欧亚一级毛片免费看 |
亚洲国产高清美女在线观看 |
亚洲无线一二三四区手机 |
国产精品无码免费播放 |
A毛片毛片看免费 |
亚洲偷自拍另类图片二区 |
亚洲AV成人片色在线观看 |
免费国产在线观看 |
免费三级毛片电影片 |
99在线免费观看 |
美女视频黄a视频全免费网站一区
美女视频黄a视频全免费网站色
|
猫咪社区免费资源在线观看 |
国产精品免费久久久久久久久 |
亚洲 欧洲 视频 伦小说 |
亚洲AV无码一区二区三区DV |
亚洲国产中文v高清在线观看 |
亚洲中文无码永久免费 |
久久这里只精品99re免费 |
一级毛片成人免费看a |
亚洲人成人无码.www石榴 |
久久精品国产亚洲av麻豆图片
|
亚洲愉拍一区二区三区 |