1import{_ as t,c as a,b as n,o as i}from"./app-CNefOTx1.js";const r="/assets/abouthibernate-BxcGJYDV.png",o={};function l(b,e){return i(),a("div",null,e[0]||(e[0]=[n('<p><img src="'+r+'" alt=""></p><p>hibernate æå¾ä¹
齿²¡æç¨äºï¼æå䏿¬¡ç¨åºè¯¥æ¯ 3 å¹´åçä¸ä¸ªä¼ä¸é¡¹ç®ï¼å³å®éç¨ hibernate ç并䏿¯æï¼æ¯æé¢å¯¼ï¼æåªæ¯å¼åè
ãææåç罪é¢å¯¼å¹¶ä¸ç¥éãæ£ å¦æçæ¯ä¸ª hibernate 项ç®é£æ ·ï¼æ¯æ¬¡æé½æ¯ç¨çæå¿åèã尽管æä» ejb1.1 å° hiberateï¼ç¶ååå° jpa é½ç»åè¿ï¼è¿ç§ä¸èç¸æ¿çææ¯ æäºè§£ååºç¨äºæ 14 å¹´ï¼ä½æè¿æ¯ä¸æ¢å£°ç§°ç²¾é OR Mappingï¼å°¤å
¶æ¯æè¿ hibernate çæ¬åé½äºäºæ°æ¦å¿µåæ° Annotationï¼è®©æè¿è§å¾ææ¯ä¸ª hibernate æ°æï¼OR Mapping ä¹è®¸å°±æ¯ä¸ª DAO éè¯¯çæ¹åã</p><p>è®©ææ¥åæ§½ä¸ä¸ hibernate è¿ç§ DAO å·¥å
·ï¼å¹¶æä¸ä¸æè®¤ä¸ºå®ç¾ç DAO å·¥å
·ã</p><p><strong>æ§½ç¹ä¸ 容å¨è®¾è®¡çè´¥ç¬</strong>ã ç³»ç»çæ ¸å¿æ¯æ¨¡åï¼ä¹å°±æ¯ JavaBeanï¼ä½¿ç¨ hiberante ç项ç®ï¼JavaBean 被æä¹
å容å¨å«æè¿æ¯ç¬¬ä¸ä¸ªæ§½ç¹ã尽管对模åæä½ï¼å¨å®¹å¨ç 帮å©ä¸ï¼è½å¾å¿«æ å°å°æ°æ®åºæä½ï¼ç¶èï¼ç°å¨è¶å¤è¶å¤ç DAO æ¡æ¶é½é¿å
设计容å¨ï¼å°±ç®æ¯ JPA è§èï¼ä¹åªå£°ç§°äºæ¯ä¸ª APIï¼èä¸åææä¹
å容å¨äºï¼å 为 æä¹
å容å¨å·²ç»ä¸å¾äººå¿äºã以䏿¯ä½¿ç¨ hibernate ç»å¸¸åºç°çé®é¢ (ä½ä¸éäºä¸é¢å ä¸ªï¼ 1 容å¨å
ï¼å¯¹æ¨¡åçæä½æä¸ä¸å®å¾æ å°å°æ°æ®åºéï¼å¯å®¹å¨ä¼å¼ºå¶ 2 对象å¨å®¹å¨å
ï¼ä¸åæä½é½å¾é¡ºå©ï¼ä½åºäºå®¹å¨ï¼ä¼æåç§ hibernate å¼å¸¸ãé¡»ç¥åºç¨å¹¶ä¸åªæ hibernateã 3 ä¿®æ¹ä¸ä¸ªå¯¹è±¡ç屿§ï¼å¿
é¡»å
仿°æ®åº load è¿æ¥ï¼æä¸ºå®¹å¨ç®¡çå¯¹è±¡ï¼æè½ä¿®æ¹</p><p><strong>æ§½ç¹äºä¹ hierbnate è½æé«ç产åï¼</strong> ææ©ææ¥è§¦ hbï¼å¹¶æ²¡æè¢«æè°çå®¹å¨æç®¡ Bean æå¸å¼ï¼ä¸é¢å·²ç»è¯´äºï¼å®é
ä¸è¿æ¯ä¸ªé«çº§é·é±ï¼ï¼æåªè§å¾ä»¥åæ·»å ï¼ä¿®æ¹é½åªéè¦è°ç¨ä¸ä¸ HB ç api å°± å¯ä»¥äºï¼å°±ç®æ¯æ¥è¯¢ï¼ä¹è²ä¼¼å¾æ¹ä¾¿ï¼æ load çæ¹æ³ãç°å¨çæ¥ï¼è¿äºåè½ï¼å 乿æç dao æ¡æ¶ï¼ææå
¬å¸èªå·±ç dao å·¥å
·é½æï¼æå¨ 2002 å¹´å°±åè¿ ææ©ç dao å·¥å
·ï¼å¹¶è½èªå¨çæ dao,javabean. ç°å¨ï¼æå¨ beetl åºç¡ä¸ï¼åäºæ´å¥½ç beetlsqlï¼ä¹å®å
¨å
·å¤è¿ç§å
¥é¨çº§åè½ã åæ§½ hibenate å¹¶ä¸è½æé«ç产åï¼æ¯å 为å
¶ä»åè½æä¾ç太容æç¨éåå¯¼è´æçä¸é«äºï¼ä»¥ä¸æ¯ hibernate æçä¸é«çå 个æ¹é¢ï¼ä½ä¸éäºä»¥ä¸ä¿©ä¸ªï¼ 1 ä¸å¯æ§ççæ sqlï¼æ¯ä¸ªç¨è¿ hibernate ç人é½è§åªæä¸æ¬¡ api è°ç¨ï¼å¯è½æ¯ one2many, ä¹å¯è½æ¯ lazylaodï¼ä½æ§å¶å°æ»¡å±çè¾åº sql è
æ
åµï¼è¿å¯¼è´æ§è½ä¸éï¼ä½ å¯ä»¥è¯´è¿æ¯å¼å人åä¸ç²¾é导è´çï¼å¯æ¯ï¼HB 为ä»ä¹è¦æä¾è¿ç§ææ®µè®©å¼äººåèµ°å°è¿ä¸æ¥ï¼å¥½çå·¥å
·åºè¯¥ä¸ºç¨åºåæä¾ä¾¿å©ï¼ 黿¢ç¨åºåç¯éã 2 é¾ä»¥è°è¯ç HQLãå¦æä½ éè¦å¾å°æ°æ®åºä¸å®¶æ¯æï¼æ°æ®åºäººå伿ç»ä½ ç»ä»ç HQLï¼ä»éè¦çæ¯ SQLï¼æ°æ®åºä¹éè¦çæ¯ SQLãæå¹¸æé¡¹ç®ä¸æ²¡æäººæç® ç» DBA å¹è® HQL è¯å¥ï¼è¿å¤ªç¯çäºï¼DBA ä¼°è®¡ä¼æ´å¨ï¼ï¼HQL å¨æçæ¥å°±æ¯ä¸ä¸ªå¾é¸¡èçåè½ãå¦æçº¯ç²¹æ¯ä¸ºäºè·¨æ°æ®åºå¹³å°ï¼ä¸å DAO æ¡æ¶é½æä¸åæ¹ æ¡ï¼æ¯å¦ beetlsql å°±å
±ç¨ç sql è¯å¥æ¾ä¸ä¸ªå°æ¹ï¼æ°æ®åºç¹å® sql è¯å¥æ¾å°æå®å°æ¹ã常è§ç翻页ï¼åºåçç¹æ§ï¼éè¿æ¹è¨å®ç°ç±»å°±è§£å³äºã</p><p><strong>æ§½ç¹ä¸:annotation 表达åä¸è¶³</strong>ï¼ ä»¥ fetch æ¥è¯´ï¼ææçä¸å¡éè¦ eger å è½½ï¼æçä¸å¡éè¦ lazy å è½½ï¼hibernate æ¾ç¶åä¸å°ï¼å¯ä¸çè§£å³æ¹æ³å°±æ¯å å
¥æ´å¤çæ° annotation æ¥è¡¨è¾¾ï¼å¦æè¿ä¸åå°ï¼å°±è®© annotation å
·å¤èæ¬æè
sql åè½ãå¯é®é¢æ¥äºï¼è¿æ ·çæéæ¹å¼ä¸å°±æ¯æä»¬å±æ§çç¨åºè¯ è¨ + sql æ¹å¼åã hiberante ç°å¨æ¯ 5.0 ä¹è®¸å°äº 25.0 çæ¬åï¼ä»å¯è½ççæ¯ä¸é¨è¯è¨ + sql çå·¥å
·äºï¼ä½è¿æ ·æä»ä¹æä¹å¢ã æè®¤ä¸º annotation, æå¤åªè½æè¿°è¡¨æ å°å°±å¯ä»¥äºãå¾å¤å
¶ä»æ¡æ¶å°±æ¯è¿ä¹åçãå¦ä¸æ¯ä¸äºç»å¸¸çæ§½ç¹ï¼ä½ä¸éäºä»¥ä¸ä¸ä¸ªæ§½ç¹ï¼: 1 fetch æ¨¡å¼ æ ¹æ®ä¸å¡æ¥çï¼ä½ annotation åªè½ä¸ç§ï¼æéç¨åªç§é½ä¸åé 2 æçæ°æ®åºä¹é´è¡¨å
³ç³»å¹¶ä¸ä¸¥æ ¼ï¼è¿å¸¸è§ï¼ï¼å¯¼è´ hibernate é½å¯å¨ä¸äº 3 ææ³ææ·å¼åï¼æå·²ç»ç¡®å®çååºæ¥ï¼ä½ hibernate è¦æ±ææå®æ´ç模åï¼å¦åï¼é½å¯å¨ä¸èµ·æ¥</p><p>大é¨åå
¶ä» dao æ¡æ¶é½ä¸ä¼åºç°ä¸é¢çé®é¢ã</p><p><strong>æ§½ç¹åï¼ç¨åºä¸ç SQL æ¯ä¸ªéè¦èµäº§ï¼éè¦ç»´æ¤ï¼ä½ hibernate 并没æå»å</strong>ãHB ææ©æ¯åªæ xml é
ç½®æä»¶ï¼ä½è
认为åªè¦éè¿é
置就è½å®æææ dao æä½ï¼ä½æ¯åæ¥åç°ä¸è¡ï¼
1å°±åæäºä¸ä¸ª HQLï¼ç»æåç° HQL è· SQL å®å
¨ä¸è½æ¯ï¼æ 忝æ Native SQL. å°±ç®è¿æ ·çæ¼è¿ï¼ä½ HB ä½è
ä»ç¶æ²¡ææè¯å° SQL ææ¯ DAO çæ ¸å¿ï¼ éè¦éç¹ç»´æ¤ã è¿ä¹æ¯ Mybatisï¼Beetlsql æ¡æ¶è½è®©å¤§å®¶æ¥åå¹¶åç±çåå ã éè¿ Java æ¼æ¥ hql æè
sql é®é¢ä¸å¤§ï¼æ éæ¯ææ°æ®åºè°è¯å¥½ççå åè¡ sql æå¼æ¼æ¥å°±å¥½äºãä½è¿æ ·å¼åæçä¸é«ï¼æ´éè¦çæ¯ï¼ç»´æ¤æçä½ï¼ä¸æ¦ä¸ 塿æ¹å¨ï¼sql æºä¼ä¸å¾ä¸éæ°å¨ java éæ¼æ¥ãhibernate æ¬æ¥åºè¯¥å sql 飿 ·æä¾ sql æ¼æ¥ï¼ä½å¹¶æ²¡æï¼åèæ¯ mybatisï¼beetlsql å¨è¿æ¹ä¾¿åçå¾å¥½ã</p><p>è¶æ¥è¶å¤ç人æè¯å° hibernte æ¯ä¸ªé®é¢ï¼ä»è转ç¨äº mybatis, jfinal,nutzdao,beetlsql çè¿æ ·ç弿º dao å·¥å
·ï¼æè®¤ä¸ºä¸ä¸ªçæ³ç dao å·¥å
·ï¼åºè¯¥æå¦ä¸åè½æ¯å¿
é¡»ç:</p><p>1 好ç dao å·¥å
·ï¼æ¯æ javabean 模å 2 好ç dao å·¥å
·ï¼å¨ javabean åºç¡ä¸ï¼ä¸è½å¹²æ¶ javabean 模å 3 æ¯æ sql çç»´æ¤ï¼å¦å beetlsql 飿 ·éè¿ markdonw æ ¼å¼ç»´æ¤ sqlï¼æè
å myabtis 飿 ·éè¿ xml ç»´æ¤ 4 æ¯æè·¨æ°æ®åºå¹³å° 5 ç®åçæ°æ®åºæä½æ éç¨æ·å¼åï¼å¤§é¨å dao å·¥å
·é½è½åå°è¿ç¹ï¼æ¯å¦ beetlsql æ¯ææ°å¢ï¼ä¿®æ¹ï¼æ ¹æ®æ¨¡æ¿ä¿®æ¹ï¼æ ¹æ®ä¸»é®æ¥è¯¢ï¼æ ¹æ®æ¨¡æ¿æ¥è¯¢çï¼è³å° 40% ç dao 代ç é½ä¸éè¦éå 6 代ç çæï¼æ¯å¦çæ javabeanï¼çæ dao 代ç ï¼çææ¥è¯¢ sql è¯å¥ç 8 dao å·¥å
·å¹¶ä¸è½è¦æ±æ°æ®åºå®å
¨ç¬¦åæ°æ®åºé«çº§èå¼ï¼ä¹ä¸è¦æ±ç¨åºå®å
¨ç OOã 7 æä¸ºéè¦çæ¯ï¼dao å·¥å
·å¿
é¡»æ¯ä¸ªå·¥å
·ï¼ä»»ç±å¼å人å使ç¨ã</p>',10)]))}const p=t(o,[["render",l],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/article/abouthibernate/","title":"æ·±åº¦åæ§½ hibernate","lang":"en-US","frontmatter":{"title":"æ·±åº¦åæ§½ hibernate","tags":["Hibernate","ORM"],"createTime":"2015/02/06 18:45:38","permalink":"/article/abouthibernate/","description":"hibernate æå¾ä¹
齿²¡æç¨äºï¼æå䏿¬¡ç¨åºè¯¥æ¯ 3 å¹´åçä¸ä¸ªä¼ä¸é¡¹ç®ï¼å³å®éç¨ hibernate ç并䏿¯æï¼æ¯æé¢å¯¼ï¼æåªæ¯å¼åè
ãææåç罪é¢å¯¼å¹¶ä¸ç¥éãæ£ å¦æçæ¯ä¸ª hibernate 项ç®é£æ ·ï¼æ¯æ¬¡æé½æ¯ç¨çæå¿åèã尽管æä» ejb1.1 å° hiberateï¼ç¶ååå° jpa é½ç»åè¿ï¼è¿ç§ä¸èç¸æ¿çææ¯ æäºè§£ååºç¨äºæ 1...","head":[["meta",{"property":"og:url","content":"http://ibeetl.com/article/abouthibernate/"}],["meta",{"property":"og:site_name","content":"é²å¤§èµ"}],["meta",{"property":"og:title","content":"æ·±åº¦åæ§½ hibernate"}],["meta",{"property":"og:description","content":"hibernate æå¾ä¹
齿²¡æç¨äºï¼æå䏿¬¡ç¨åºè¯¥æ¯ 3 å¹´åçä¸ä¸ªä¼ä¸é¡¹ç®ï¼å³å®éç¨ hibernate ç并䏿¯æï¼æ¯æé¢å¯¼ï¼æåªæ¯å¼åè
ãææåç罪é¢å¯¼å¹¶ä¸ç¥éãæ£ å¦æçæ¯ä¸ª hibernate 项ç®é£æ ·ï¼æ¯æ¬¡æé½æ¯ç¨çæå¿åèã尽管æä» ejb1.1 å° hiberateï¼ç¶ååå° jpa é½ç»åè¿ï¼è¿ç§ä¸èç¸æ¿çææ¯ æäºè§£ååºç¨äºæ 1..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"http://ibeetl.com/Users/lijiazhi/mybook/home-site/docs/article/æ¥å¸¸/images/abouthibernate.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2025-03-09T14:27:48.000Z"}],["meta",{"property":"article:tag","content":"Hibernate"}],["meta",{"property":"article:tag","content":"ORM"}],["meta",{"property":"article:modified_time","content":"2025-03-09T14:27:48.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"æ·±åº¦åæ§½ hibernate\\",\\"image\\":[\\"http://ibeetl.com/Users/lijiazhi/mybook/home-site/docs/article/æ¥å¸¸/images/abouthibernate.png\\"],\\"dateModified\\":\\"2025-03-09T14:27:48.000Z\\",\\"author\\":[]}"]]},"headers":[],"readingTime":{"minutes":5.88,"words":1765},"git":{"updatedTime":1741530468000,"contributors":[{"name":"lijiazhi","username":"lijiazhi","email":"[email protected]","commits":1,"avatar":"https://gravatar.com/avatar/1b5114831459724ad4acc394423b4b48ecfa4a7e0659fbe07a0ce5181a1050a7?d=retro"}]},"autoDesc":true,"filePathRelative":"article/æ¥å¸¸/about-hibernate.md","categoryList":[{"id":"92a2b5","
1sort":10000,"name":"article"},{"id":"d1c8f4","sort":10007,"name":"æ¥å¸¸"}]}');export{p as comp,c as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.