锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲午夜av影院,91亚洲导航深夜福利,亚洲乱码日产一区三区http://m.tkk7.com/tommyjian/category/23424.html鐢熸椿灝辨槸涓涓洰鏍囷紝鎺ョ潃涓涓洰鏍囥?/description>zh-cnFri, 29 Jun 2007 16:45:55 GMTFri, 29 Jun 2007 16:45:55 GMT60緲昏瘧錛歩BATIS 3.0 鑽夋鈥斺斾嬌鐢ㄦ爣娉ㄨ繘琛岄厤緗?/title><link>http://m.tkk7.com/tommyjian/archive/2007/06/29/127054.html</link><dc:creator>Tommy Jian</dc:creator><author>Tommy Jian</author><pubDate>Fri, 29 Jun 2007 05:35:00 GMT</pubDate><guid>http://m.tkk7.com/tommyjian/archive/2007/06/29/127054.html</guid><wfw:comment>http://m.tkk7.com/tommyjian/comments/127054.html</wfw:comment><comments>http://m.tkk7.com/tommyjian/archive/2007/06/29/127054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/tommyjian/comments/commentRss/127054.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/tommyjian/services/trackbacks/127054.html</trackback:ping><description><![CDATA[<p><strong>浣跨敤鏍囨敞榪涜閰嶇疆</strong></p> <p>   鏍囨敞鐜板湪宸茬粡寰堟祦琛屼簡錛岃澶氫漢閫夋嫨瀹冧綔涓篨ML鐨勬浛浠f潵榪涜鍏冩暟鎹紪紼嬨傛爣娉ㄤ腑涓嶅簲璇ュ寘鍚厤緗俊鎭紝鑰宨BATIS閫氳繃XML鏉ヨ繘琛岀殑宸ヤ綔涔熶笉鍏夋槸閰嶇疆銆?/p> <p>   閭d箞浠涔堟槸閰嶇疆錛屼粈涔堝張涓嶆槸鍛紵鐩墠錛宨BATIS鐨刋ML鏂囦歡鍖呭惈浜嗕笁鏂歸潰錛?/p> <ul> <li>閰嶇疆淇℃伅</li> <li>鍏冩暟鎹俊鎭?/li> <li>浠g爜</li> </ul> <p>   褰撴?zhèn)ㄦ妸鐜璁揪|敼鍙樺悗錛屾?zhèn)ㄥ悓鏃朵篃闇瑕佹洿鏀歸厤緗紝渚嬪鏁版嵁搴撹繛鎺ラ厤緗佷簨鍔$鐞嗛厤緗瓑絳夈傚綋鎮(zhèn)ㄥ皢搴旂敤鍒嗗彂鍒頒笉鍚岀殑鏁版嵁搴擄紝鑰屼笖涔熶嬌鐢ㄤ簡涓浜涗笓鏈夌殑SQL璇彞鍚庯紝閰嶇疆涓彲鑳借繕瑕佸寘鍚玈QL鏂硅█鐨勪竴浜涢厤緗俊鎭傚湪iBATIS 3.0涓垜浠彲浠ュ皢榪欎簺淇℃伅鍖呭惈榪涘幓錛屽洜姝わ紝鎮(zhèn)ㄩ渶瑕侀拡瀵瑰縐嶆柟璦榪涜緙栫爜錛堝綋鐒惰繖鏄墜宸ョ殑錛夛紝涓哄畠浠懡鍚嶏紝騫跺皢瀹冧滑閰嶇疆鍒伴傚綋鐨勪綅緗傞厤緗俊鎭笉搴旇琚寘鍚湪Java婧愭枃浠朵腑銆?/p> <p>   鍏冩暟鎹俊鎭寘鎷濡傜粨鏋滄槧灝勩佸弬鏁版槧灝勫拰緙撳瓨妯″瀷涔嬬被鐨勪俊鎭傝繖浜涗俊鎭帶鍒秈BATIS濡備綍鏄犲皠鎮(zhèn)ㄧ殑鏁版嵁浠ュ強(qiáng)榪欎簺鏄犲皠鐨勫叿浣撹〃鐜般?/p> <p>   緙栫爜鍖呮嫭SQL浠ュ強(qiáng)鍔ㄦ佺殑SQL璇彞銆?/p> <p>   閭d箞鏍囨敞搴旇鎵挎媴浠涔堟牱鐨勮亴璐e憿錛?/p> <p>   涓鑸儏鍐典笅錛屽彧鏈夊厓鏁版嵁淇℃伅姣旇緝閫傚悎浣跨敤鏍囨敞鏉ユ弿榪般傞厤緗簲璇ラ氳繃灞炴ф枃浠舵垨鑰匵ML鏂囦歡鏉ュ疄鐜般傜紪鐮佷篃鍙兘閫氳繃Java鏂囦歡鎴栬匵ML鏂囦歡鏉ュ疄鐜般傛洿榪涗竴姝ョ湅錛屾爣娉ㄥ彧鑳界敤鏉ユ弿榪扮浉瀵硅緝綆鍗曠殑鍏冩暟鎹俊鎭傛湁鏃訛紝鏍囨敞錛堢壒鍒槸鍦↗ava涓級涔熶細(xì)浣夸簨鎯呭彉寰楁洿鍔犲鏉傦紝浣夸唬鐮佹洿鍔犳櫐娑╅毦鎳傘?/p> <p>   鍥犱負(fù)涓婇潰鐨勫師鍥狅紝鎵浠ユ垜鎺ㄨ崘鍙皢鏍囨敞浣滀負(fù)綰﹀畾閰嶇疆鐨勬浛浠i厤緗傝繖灝辨槸璇達(dá)紝浣跨敤榪欑閰嶇疆鏂瑰紡鍙互杈懼埌涓瀹氱殑鏁堟灉錛屼絾鏄篃浠呬粎闄愪簬姝ゃ?/p> <p>   鍐嶄竴嬈″己璋冿紝C#鐨凙ttribute鍦ㄦ煇浜涙柟闈㈣寮轟簬Java鐨勬爣娉細(xì)</p> <ul> <li>鏀寔澶氳瀛楃涓詫紝榪欎嬌寰楀唴宓孲QL緙栫爜浠や漢鎰熷埌鎰夊揩</li> <li>鏀寔浣跨敤鍚屼竴鏍囨敞澶氭錛岃屽湪Java涓垯闇瑕侀氳繃闆嗗悎鏍囨敞鏉ュ疄鐜?/li> <li>鏀寔欏哄簭鍜屽懡鍚嶅弬鏁幫紝榪欎嬌寰椾唬鐮佸彉寰楁洿鍔犵畝鏄庢壖瑕?/li> </ul> <p>   涓嬮潰榪欎釜渚嬪瓙灞曠ず浜嗗浣曚嬌鐢↗ava涓殑鏍囨敞鏉ュ畬鎴愰厤緗細(xì)</p> <div style="border: 2px dotted ; background-color: #99ccff; font-family: Courier New,Courier; font-size: small;">//<br>// Simple select, string concatenation, inline results(!) and inline parameters<br>//<br>@Select("SELECT #id(EMP_ID:NUMERIC), #firstName(FIRST_NAME:VARCHAR), #lastName(LAST_NAME:VARCHAR) " +<br>"FROM EMPLOYEE")<br>List<employee> selectAllEmployees();<br>//<br>// Alternative syntax using an array of strings instead of string concatenation...can be "smarter" than concatenation<br>//<br>@Select({"SELECT #id(EMP_ID:NUMERIC), #firstName(FIRST_NAME:VARCHAR), #lastName(LAST_NAME:VARCHAR) ",<br>"FROM EMPLOYEE",<br>"WHERE EMP_ID = @id"})<br>Employee selectEmployee(int id);<br>//<br>// Inserts look as you might expect. We can use getGeneratedKeys to get autogen key values, selectkey still supported<br>//<br>@Insert({"INSERT INTO EMPLOYEE (EMP_ID, FIRST_NAME, LAST_NAME)",<br>"VALUES (@id, @firstName, @lastName)"})<br>void insertEmployee(Employee emp);<br>//<br>// Nothing special about update<br>//<br>@Update({"UPDATE EMPLOYEE SET",<br>"EMP_ID=@id(NUMERIC:IN), FIRST_NAME=@firstName(VARCHAR:IN), LAST_NAME=@lastName(VARCHAR:IN)"})<br>void updateEmployee(Employee emp);<br>//<br>// Delete is obvious.<br>//<br>@Delete("DELETE EMPLOYEE WHERE EMP_ID = @id")<br>void deleteEmployee(int id);<br></employee></div> <br> <p>   涓嬮潰榪欎釜渚嬪瓙瑕佹洿鍔犲鏉備竴浜涳紝鍍忚繖縐嶄嬌鐢ㄤ簡濡傛澶氱殑鏍囨敞鐨勬儏鍐靛氨搴旇鑰冭檻浣跨敤XML鏂囦歡鏉ヨ繘琛岄厤緗傝繖縐嶆儏鍐典笅錛屾垜鎯寵薄鏍囨敞鑳藉鎻愪緵涓鍒囧姛鑳斤紝鍗砐ML涓疄鐜扮殑鍔熻兘閫氳繃鏍囨敞涔熻兘瀹屾垚銆傜劧鑰岋紝鎴戜滑榪樻槸寤鴻鎮(zhèn)ㄥ湪闈㈠澶嶆潅鐨勬儏鍐墊椂浣跨敤XML鏉ヨ繘琛岄厤緗傛垨璁告煇浜涗漢涓嶆槸鐗瑰埆鍦ㄦ剰浣跨敤XML閰嶇疆錛屾墍浠ユ垜浠負(fù)浠栦滑鎻愪緵浜嗘爣娉ㄩ厤緗柟寮忋?/p> <div style="border: 2px dotted ; background-color: #99ccff; font-family: Courier New,Courier; font-size: small;">//<br>// complex stuff<br>//<br>@ResultClass (Company.class)<br>@ConstructorResults({<br>@Result(property="id", column="C.COMP_ID"),<br>@Result(property="name", column="C.NAME")<br>})<br>@PropertyResults({<br>@Result(property="departments.id", column="D.DEPT_ID"),<br>@Result(property="departments.name", column="D.NAME"),<br>@Result(property="departments.employee.id", column="E.EMP_ID"),<br>@Result(property="departments.employee.firstName", column="E.FIRST_NAME"),<br>@Result(property="departments.employee.lastName", column="E.LAST_NAME")<br>})<br>@Collections ({<br>@Collection(type=Department.class, property="departments", groupBy="id"),<br>@Collection(type=Employee.class, property="departments.employees", groupBy="departments.id")<br>})<br>@Select("SELECT #id, #name, " +<br>"#departments.id, #departments.name, " +<br>"#departments.employees.id, #departments.employees.firstName, " +<br>"#departments.employees.lastName " +<br>"FROM COMPANY C, DEPARTMENT D, EMPLOYEE E " +<br>"WHERE D.DEPT_ID = E.DEPT_ID " +<br>"AND C.COMP_ID = D.COMP_ID")<br>List<company> selectAllCompaniesWithJoin();<br>/*<br>* NESTED QUERIES<br>*/<br>@ResultClass (Company.class)<br>@FieldResults({<br>@Result(property="id", column="COMP_ID"),<br>@Result(property="name", column="NAME")<br>})<br>@PropertyResults({<br>@Result(property="departments",<br>nestedQuery=@QueryMethod(type=CompanyMapper.class, methodName="getDepartmentsForCompany", parameters="id"))<br>})<br>@Select("SELECT #id, #name FROM COMPANY C ")<br>List<company> selectAllCompaniesWithNestedQueries();<br>@ResultClass (Department.class)<br>@PropertyResults({<br>@Result(property="id", column="DEPT_ID"),<br>@Result(property="name", column="NAME"),<br>@Result(property="employees",<br>nestedQuery=@QueryMethod(type=CompanyMapper.class, methodName="getEmployeesForDeparment", parameters="id"))<br>})<br>@Select("SELECT #id, #name FROM DEPARTMENT WHERE COMP_ID = @id ")<br>List<department> getDepartmentsForCompany(int id);<br>@ResultClass (Employee.class)<br>@PropertyResults({<br>@Result(property="id", column="EMP_ID"),<br>@Result(property="firstName", column="FIRST_NAME"),<br>@Result(property="lastName", column="LAST_NAME")<br>})<br>@Select("SELECT #id, #firstName, #lastName FROM EMPLOYEE WHERE EMP_ID = @id ")<br>List<employee> getEmployeesForDepartment(int id);<br></employee></department></company></company></div><img src ="http://m.tkk7.com/tommyjian/aggbug/127054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/tommyjian/" target="_blank">Tommy Jian</a> 2007-06-29 13:35 <a href="http://m.tkk7.com/tommyjian/archive/2007/06/29/127054.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緲昏瘧錛歩BATIS 3.0 鑽夋鈥斺旂害瀹氫織鎴愮殑閰嶇疆鏂瑰紡http://m.tkk7.com/tommyjian/archive/2007/06/26/126256.htmlTommy JianTommy JianTue, 26 Jun 2007 01:47:00 GMThttp://m.tkk7.com/tommyjian/archive/2007/06/26/126256.htmlhttp://m.tkk7.com/tommyjian/comments/126256.htmlhttp://m.tkk7.com/tommyjian/archive/2007/06/26/126256.html#Feedback0http://m.tkk7.com/tommyjian/comments/commentRss/126256.htmlhttp://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><link>http://m.tkk7.com/tommyjian/archive/2007/06/22/125784.html</link><dc:creator>Tommy Jian</dc:creator><author>Tommy Jian</author><pubDate>Fri, 22 Jun 2007 03:23:00 GMT</pubDate><guid>http://m.tkk7.com/tommyjian/archive/2007/06/22/125784.html</guid><wfw:comment>http://m.tkk7.com/tommyjian/comments/125784.html</wfw:comment><comments>http://m.tkk7.com/tommyjian/archive/2007/06/22/125784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/tommyjian/comments/commentRss/125784.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/tommyjian/services/trackbacks/125784.html</trackback:ping><description><![CDATA[<p><strong>澶氱閰嶇疆鏂瑰紡</strong></p> <p>   iBATIS涓渶鍙よ佺殑灝辨槸鍏墮厤緗柟寮忋傚湪欏圭洰寮濮嬬殑鏃跺欙紝XML琚涓烘渶濂界殑閰嶇疆鏂瑰紡銆備簨瀹炰笂錛孹ML鐜板湪榪樻槸姣旇緝濂界殑閰嶇疆鏂規(guī)硶錛屽洜涓哄畠鏄繘琛屽鏉傜殑澶氳SQL閰嶇疆鐨勬渶浣蟲柟寮忋傚洜姝わ紝XML鐨勯厤緗柟寮忓皢浜堜互淇濈暀銆備絾鏄畠涓嶅啀鏄粯璁ょ殑閰嶇疆鏂瑰紡錛岃屼笖涔熶笉瑙佸緱鏄ぇ澶氭暟搴旂敤鐨勯閫夈?/p> <p>   iBATIS 3.0灝嗕嬌鐢ㄥ縐嶉厤緗柟寮忋傝繖灝辨槸璇磇BATIS灝嗗彲浠ヤ嬌鐢ㄥ縐嶆柟寮忚繘琛岄厤緗紝鑰屼笖榪欎簺鏂瑰紡鍙互鍗忓悓宸ヤ綔銆傛寜鐓у疄鐢ㄦф帓搴忥紝鏈変互涓嬪洓縐嶆柟娉曪細(xì)</p> <ul> <li>綰﹀畾淇楁垚</li> <li>Java鐨勬爣璇嗭紙鍙互瑕嗙洊鍓嶄竴縐嶉厤緗殑閰嶇疆淇℃伅錛?/li> <li>XML錛堝彲浠ヨ鐩栧墠涓ょ閰嶇疆鐨勯厤緗俊鎭級</li> <li>Java API錛堝彲浠ヨ鐩栦互涓婇厤緗殑閰嶇疆淇℃伅錛?/li> </ul><img src ="http://m.tkk7.com/tommyjian/aggbug/125784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/tommyjian/" target="_blank">Tommy Jian</a> 2007-06-22 11:23 <a href="http://m.tkk7.com/tommyjian/archive/2007/06/22/125784.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緲昏瘧錛歩BATIS 3.0 鑽夋鈥斺斾簨鍔°佷細(xì)璇濆拰宸ュ巶綾燴斺擬apperFactoryhttp://m.tkk7.com/tommyjian/archive/2007/06/20/125358.htmlTommy JianTommy JianWed, 20 Jun 2007 08:00:00 GMThttp://m.tkk7.com/tommyjian/archive/2007/06/20/125358.htmlhttp://m.tkk7.com/tommyjian/comments/125358.htmlhttp://m.tkk7.com/tommyjian/archive/2007/06/20/125358.html#Feedback0http://m.tkk7.com/tommyjian/comments/commentRss/125358.htmlhttp://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><link>http://m.tkk7.com/tommyjian/archive/2007/06/19/125161.html</link><dc:creator>Tommy Jian</dc:creator><author>Tommy Jian</author><pubDate>Tue, 19 Jun 2007 09:40:00 GMT</pubDate><guid>http://m.tkk7.com/tommyjian/archive/2007/06/19/125161.html</guid><wfw:comment>http://m.tkk7.com/tommyjian/comments/125161.html</wfw:comment><comments>http://m.tkk7.com/tommyjian/archive/2007/06/19/125161.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.tkk7.com/tommyjian/comments/commentRss/125161.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/tommyjian/services/trackbacks/125161.html</trackback:ping><description><![CDATA[<p><strong>鎺ュ彛緇戝畾</strong></p> <p>   闅忕潃Java 5鐨勬帹騫匡紝鎴戜滑鏈夋満浼?xì)鏉ユ敼鍠勭敤鎴蜂綋楠屻傚叾涓渶閲嶈鐨勬槸鍊熷姪Java 5鍙互娑堥櫎浠や漢鐢熸儜鐨勭被鍨嬭漿鎹紝鍙互娑堥櫎SQL鏄犲皠鍩轟簬瀛楃鐨勮皟鐢ㄦ柟寮忋備婦渚嬫潵璇達(dá)紝鐜板湪鍦ㄨ皟鐢⊿QL鏄犲皠鐨勬椂鍊欐槸榪欐牱鐨勶細(xì)</p> <div style="border: 2px dotted ; background-color: #99ccff; font-family: Courier New,Courier; font-size: small;">Employee employee = (Employee)sqlMapper.queryForList("getEmployee", 5);<br>//...and...<br>List employees = sqlMapper.queryForList("listAllEmployees");</div> <p>   闂鏄緢鏄庢樉鐨勩傜涓錛屼笂闈㈢殑涓や釜渚嬪瓙涓鏄犲皠鐨勮鍙ョ殑鍚嶇О閮芥槸鍩轟簬瀛楃涓茬殑錛岃岃繖寰堝鏄撳鑷撮敊璇傝繖縐嶆柟寮忎篃涓嶄細(xì)寰楀埌IDE宸ュ叿銆佺紪璇戝櫒鐨勬敮鎸佸拰綆$悊銆?/p> <p>   絎簩涓棶棰樻槸瀛樺湪鍙傛暟鍜岃繑鍥炲肩被鍨嬪畨鍏ㄩ棶棰樸傚湪絎竴涓緥瀛愪腑錛岃皝鑳戒繚璇佸弬鏁扮殑綾誨瀷涓瀹氭槸Integer錛熻岃皝鍙堣兘淇濊瘉鎮(zhèn)ㄥ緱鍒扮殑榪斿洖鍊間竴瀹氭槸Employee綾誨瀷鍛紵榪欓噷錛岀紪璇戝櫒涔熶笉浼?xì)缁欏囖Z換浣曞伩閿欒鎶ュ憡鍜屾彁紺恒傝屽彧鏈夎繍琛屾椂寮傚父浼?xì)琚姏鍑恒?/p> <p>   鏈鍚庯紝鍦ㄩ泦鍚堢殑渚嬪瓙涓棶棰樹篃鏄浉鍚岀殑銆傚湪榪愯鍓嶏紝鎮(zhèn)ㄥ彲鑳戒細(xì)鑾峰緱Dogs鐨勯泦鍚堬紝鑰屼笉鏄疎mployees銆?/p> <p>   鎬諱箣錛岃繖縐嶆柟寮忚櫧鐒舵瘮JDBC寮猴紝浣嗘槸涔熻浜哄嶆劅闅懼彈錛岃繕鏄瓨鍦ㄦ敼鍠勭殑絀洪棿銆?/p> <p>   鍦↗ava 5涓垜浠彲浠ュ厖鍒嗕嬌鐢ㄨ寖鍨嬫潵瑙勮寖闆嗗悎綾誨瀷銆傝繖鏍鳳紝鎴戜滑涓嶉渶瑕佽繘琛岀壒孌婄殑閰嶇疆灝卞彲浠ヤ負(fù)闆嗗悎綾誨瀷寤虹珛涓鑷寸殑API銆傛垜浠笉闇瑕佸湪XML鏂囦歡涓0鏄庣被鍨嬶紝涓嶉渶瑕侀氳繃瀛楃鍚嶇О鏉ヨ皟鐢ㄨ鏄犲皠鐨勮鍙ワ紝鐩稿弽錛屾垜浠彲浠ュ厖鍒嗗埄鐢ㄨ〃杈懼ソ涓旂被鍨嬪畨鍏ㄧ殑鎺ュ彛綾誨瀷銆傛病鏈変粈涔堟柊涓滆タ闇瑕佸涔?fàn)锛屽彧鏄櫘閫氱殑鎺ュ彛灝卞彲浠ヤ簡銆?/p> <div style="border: 2px dotted ; background-color: #99ccff; font-family: Courier New,Courier; font-size: small;">public interface EmployeeMapper <br>{  <br>  Employee getEmployee (int employeeId);  <br>  List<employee> listAllEmployees();<br>}</employee></div> <p>   榪欏氨澶熶簡錛乮BATIS鏉ュ府鎴戜滑瀹炵幇榪欎釜鎺ュ彛銆?/p> <p>   鐜板湪鎴戜滑鍙互浠ヤ竴縐嶆洿鍔犵畝媧佸拰瀹夊叏鐨勬柟寮忔潵璋冪敤琚槧灝勭殑璇彞浜嗐?/p> <div style="border: 2px dotted ; background-color: #99ccff; font-family: Courier New,Courier; font-size: small;">Employee emp = empMapper.getEmployee(5);<br>//...and...<br>List<employee> employees = empMapper.listAllEmployees();</employee></div> <p>   鍦ㄤ笂闈㈢殑璋冪敤涓病鏈夌被鍨嬭漿鎹€佹病鏈夊瓧絎︿覆錛岃屼笖鍙傛暟鍜岃繑鍥炲肩殑綾誨瀷鏄佸畨鍏ㄧ殑銆傞澶栫殑浠g爜灝辨槸閽堝鎺ュ彛浣跨敤XML鎴栬匤ava鐨勬爣璇嗚繘琛岄厤緗傛渶澶氭垜浠彧闇瑕侀厤緗甋QL璇彞銆侀渶瑕佽繘琛岄噸杞界殑鍙傛暟鎴栬呰繑鍥炲肩被鍨嬨?/p> <p>   鎺ュ彛鎻忚堪浜嗘墍闇瑕佺殑涓鍒囥?/p> <ul> <li>璇彞鐨勫悕縐幫紙榛樿鎯呭喌涓嬩笌鏂規(guī)硶鐨勫悕瀛椾竴鑷達(dá)級</li> <li>鍙傛暟綾誨瀷錛堝鏋滃瓨鍦ㄧ殑璇濓級</li> <li>榪斿洖鍊肩被鍨嬶紙鍖呮嫭鑼冨瀷闆嗗悎鐨勫厓绱犵殑綾誨瀷錛?/li> </ul> <p>   鑰屽叾涓渶鏈夎叮鐨勫氨鏄垜浠彲浠ュ熀浜庢柟娉曞悕縐拌繖鏍風(fēng)殑綰﹀畾鏉ョ敓鎴怱QL鏄犲皠銆備互鍚庡叧浜庨厤緗殑绔犺妭涓皢璇︾粏璁ㄨ榪欎簺緇嗚妭銆?/p> <p>   鎺ュ彛緇戝畾鐨勬柟娉曚嬌寰楄濡係pring榪欐牱鐨勬鏋跺皢鏄犲皠綾繪敞鍏ュ叾浠栫被鍙樺緱瀹規(guī)槗錛屽悓鏃朵篃涓嶉渶瑕佸皢浜嬪姟綆$悊鐨勮繃澶氱粏鑺傚叕寮銆?/p><img src ="http://m.tkk7.com/tommyjian/aggbug/125161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/tommyjian/" target="_blank">Tommy Jian</a> 2007-06-19 17:40 <a href="http://m.tkk7.com/tommyjian/archive/2007/06/19/125161.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://tmg-beelen.com" target="_blank">黑人粗长大战亚洲女2021国产精品成人免费视频 </a>| <a href="http://yeyaweiban.com" target="_blank">国产视频精品免费视频</a>| <a href="http://qqcnm.com" target="_blank">亚洲精品你懂的在线观看</a>| <a href="http://yutuzb.com" target="_blank">免费A级毛片无码A∨</a>| <a href="http://aa2176.com" target="_blank">亚洲国产无线乱码在线观看 </a>| <a href="http://o091i.com" target="_blank">久久精品国产亚洲AV电影网</a>| <a href="http://tianwu520.com" target="_blank">亚洲片一区二区三区</a>| <a href="http://cdhxfj.com" target="_blank">色www永久免费</a>| <a href="http://quxx10.com" target="_blank">国产精品亚洲综合五月天</a>| <a href="http://dsdkg.com" target="_blank">亚洲成av人片一区二区三区</a>| <a href="http://14743592.com" target="_blank">小草在线看片免费人成视久网</a>| <a href="http://19520888.com" target="_blank">亚洲小说图区综合在线</a>| <a href="http://53reniao.com" target="_blank">国产亚洲情侣一区二区无码AV </a>| <a href="http://228609.com" target="_blank">亚洲精品成人在线</a>| <a href="http://sk7758.com" target="_blank">外国成人网在线观看免费视频</a>| <a href="http://wwwy6x22.com" target="_blank">久久亚洲中文无码咪咪爱</a>| <a href="http://wwkk3.com" target="_blank">久久夜色精品国产亚洲</a>| <a href="http://oakuu.com" target="_blank">国产人成免费视频</a>| <a href="http://gycat.com" target="_blank">51精品视频免费国产专区</a>| <a href="http://128313.com" target="_blank">欧亚一级毛片免费看</a>| <a href="http://dd99com.com" target="_blank">亚洲国产高清美女在线观看</a>| <a href="http://xjscr.com" target="_blank">亚洲无线一二三四区手机</a>| <a href="http://2828228.com" target="_blank">国产精品无码免费播放</a>| <a href="http://77663499.com" target="_blank">A毛片毛片看免费</a>| <a href="http://wwwfafa98.com" target="_blank">亚洲偷自拍另类图片二区</a>| <a href="http://milbolg.com" target="_blank">亚洲AV成人片色在线观看</a>| <a href="http://53ggk.com" target="_blank">免费国产在线观看</a>| <a href="http://942woool.com" target="_blank">免费三级毛片电影片</a>| <a href="http://wdjiuye.com" target="_blank">99在线免费观看</a>| <a href="http://126cm.com" target="_blank">美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 </a>| <a href="http://by6174.com" target="_blank">猫咪社区免费资源在线观看</a>| <a href="http://lshwork.com" target="_blank">国产精品免费久久久久久久久</a>| <a href="http://qinglou31.com" target="_blank">亚洲 欧洲 视频 伦小说</a>| <a href="http://www-095666.com" target="_blank">亚洲AV无码一区二区三区DV</a>| <a href="http://czxgjt.com" target="_blank">亚洲国产中文v高清在线观看</a>| <a href="http://fenxue520.com" target="_blank">亚洲中文无码永久免费</a>| <a href="http://www769393.com" target="_blank">久久这里只精品99re免费</a>| <a href="http://449892.com" target="_blank">一级毛片成人免费看a</a>| <a href="http://zaideqin.com" target="_blank">亚洲人成人无码.www石榴</a>| <a href="http://sao350.com" target="_blank">久久精品国产亚洲av麻豆图片 </a>| <a href="http://142121.com" target="_blank">亚洲愉拍一区二区三区</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>