1.resultMap
SQL æ å°XML æ件æ¯ææ
sqlè¯å¥æ¾ç½®çå°æ¹ãéè¦å®ä¹ä¸ä¸ªworkspaceï¼ä¸è¬å®ä¹ä¸ºå¯¹åºçæ¥å£ç±»çè·¯å¾ãå好SQLè¯å¥æ å°æ件åï¼éè¦å¨MyBAtis
é
ç½®æ件mappersæ ç¾ä¸å¼ç¨ï¼ä¾å¦ï¼
1
2
3
4
5
6
<mappers>
<mapper resource="com/liming/manager/data/mappers/UserMapper.xml" />
<mapper resource="com/liming/manager/data/mappers/StudentMapper.xml" />
<mapper resource="com/liming/manager/data/mappers/ClassMapper.xml" />
<mapper resource="com/liming/manager/data/mappers/TeacherMapper.xml" />
</mappers>
å½Javaæ¥å£ä¸XMLæ件å¨ä¸ä¸ª
ç¸å¯¹è·¯å¾ä¸æ¶ï¼å¯ä»¥ä¸å¨myBatisé
ç½®æ件çmappersä¸å£°æã
SQL æ å°XML æ件ä¸äºå级çå
ç´ ï¼
ï¼1ï¼. cache â é
ç½®ç»å®æ¨¡å¼çç¼å
ï¼2ï¼. cache-ref â ä»å«ç模å¼ä¸å¼ç¨ä¸ä¸ªç¼å
ï¼3ï¼. resultMap â è¿æ¯æå¤æèå´å¼ºå¤§çä¸ä¸ªå
ç´ äºï¼å®æè¿°å¦ä½ä»ç»æéä¸å 载对象
ï¼4ï¼. sql â ä¸ä¸ªå¯ä»¥è¢«å
¶ä»è¯å¥å¤ç¨çSQL å
ï¼5ï¼. insert â æ å°INSERT è¯å¥
ï¼6ï¼. update â æ å°UPDATE è¯å¥
ï¼7ï¼. delete â æ å°DELEETE è¯å¥
ï¼8ï¼. select - æ å°SELECTè¯å¥
1.1 resultMap
resultMap æ¯MyBatis ä¸æéè¦æ强大çå
ç´ äºãä½ å¯ä»¥è®©ä½ æ¯ä½¿ç¨JDBC è°ç¨ç»æéçæ90%ç代ç ï¼ä¹å¯ä»¥è®©ä½ å许å¤JDBC ä¸æ¯æçäºãç°å®ä¸ï¼è¦åä¸ä¸ªçå类似äºäº¤äºçæ å°è¿æ ·çå¤æè¯å¥ï¼å¯è½è¦ä¸åè¡ç代ç ãResultMapsçç®çï¼å°±æ¯è¿æ ·ç®åçè¯å¥èä¸éè¦å¤ä½ç ç»ææ å°ï¼æ´å¤å¤æçè¯å¥ï¼é¤äºåªè¦ä¸äºç»å¯¹å¿
é¡»çè¯å¥æè¿°å
³ç³»ä»¥å¤ï¼åä¹ä¸éè¦å
¶å®çã
resultMapå±æ§ï¼type为javaå®ä½ç±»ï¼id为æ¤resultMapçæ è¯ã
resultMapå¯ä»¥è®¾ç½®çæ å°ï¼
ï¼1ï¼. constructor â ç¨æ¥å°ç»æåå°ç»ä¸ä¸ªå®ä¾å好çç±»çæé å¨
a) idArg â ID åæ°ï¼å°ç»æéæ 记为IDï¼ä»¥æ¹ä¾¿å
¨å±è°ç¨
b) arg âåå°å°æé å¨çé常ç»æ
ï¼2ï¼. id â ID ç»æï¼å°ç»æéæ 记为IDï¼ä»¥æ¹ä¾¿å
¨å±è°ç¨
ï¼3ï¼. result â åå°å°JavaBean å±æ§çæ®éç»æ
ï¼4ï¼. association â å¤æç±»åçç»åï¼å¤ä¸ªç»æåæçç±»å
a) nested result mappings â å resultMap èªèº«åµå¥å
³èï¼ä¹å¯ä»¥å¼ç¨å°ä¸ä¸ªå
¶å®ä¸
ï¼5ï¼. collection âå¤æç±»åéåa collection of complex types
ï¼6ï¼. nested result mappings â resultMap çéåï¼ä¹å¯ä»¥å¼ç¨å°ä¸ä¸ªå
¶å®ä¸
ï¼7ï¼. discriminator â 使ç¨ä¸ä¸ªç»æå¼ä»¥å³å®ä½¿ç¨åªä¸ªresultMap
a) case â åºæ¬ä¸äºå¼çç»ææ å°çcase æ
å½¢
i. nested result mappings âä¸ä¸ªcase æ
å½¢æ¬èº«å°±æ¯ä¸ä¸ªç»ææ å°ï¼å æ¤ä¹å¯ä»¥å
æ¬ä¸äºç¸åçå
ç´ ï¼ä¹å¯ä»¥å¼ç¨ä¸ä¸ªå¤é¨resultMapã