前一篇文章已经把sql语句写好了并且在PL/SQL上调试过了,是可以的。这篇文章是写对应的mapper.xml,
第一步我们先通过逆向工程去构建每个表的mapper.xml文件和pojo类。这个我们在之前的博客中已经实现了。
逆向工程创建的mapper.xml和pojo类是针对于单表的,这肯定不是符合我们规则的,因为我们要查询的东西包括用户的单位什么的,这是在别的表上的。所以要自己写自定义的mapper.xml和pojo类。
先给出已有的工程的结构目录:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXEAAAMhCAIAAACR9BYtAAAgAElEQVR4nO2d7XMc9YGgdf9BPiWVD1dcyHFHoDZZOyEvE+Lyp02ooopstryGOvbWRXITEo7CzpuC8RWsMSy7kGRqzQF7ZG2Zw1oTjJN4L+LVqxjWOMY5LnjN2jAVsLBNbNkCgbE8mpHU96GlmV//Xvptft39657nqS6XptVvI6sfdff0PDP0f81MT09Pnz3WHY4fO+IBVIXtv3zh1XPevQ88Hj6YZt+z6cNz770w/94L8++9MLf0r/jF3Hsv/OyWD4VswH333Re+hS+99NL+JQ4ePHj06NGzZ88eOXJk3759e/bs2bdv35Ej/e6SN954o/RFTI4fO/KHE6+LfugOQzgFBpOuU14955mGEKd4nvezWz40N/mYP/zslg+pQ/gGRDrlX/7lX55cYu/eva+//vqRI0f27NlzZAn/68TPPMiNN96YVCgeTgFQEZ1ytq0fwp3ied7PbvlQ5+SDnZMPRhpEJdIpL7zwwvPPP79///6XXnrp3/7t386cOfPyyy+/+OKLL7zwwt4lnn/++aTrtQJOAZARnfJORz9EOsVb0orklD2bPvzMg/8pfMZIpxw7duy3v/3t8ePHJycnp6enz58///vf//7FF1986qmnfvGLX+zatWvXrl179uyJ3MIswCkAMqJT3uvohzhO8TxPPdPZs+nDkVqJdIrneefOnTt48ODu3bt37Nixe/fugwcPvv3227/97W+fe+45/5zo2WefjbOF1sEpADKiU/7dn6xXh/hOUdmz6cML8+/6ZjFNE8cpBw8e3LFjx4ElduzYcfDgwWPHjr300kt79+7dtWtX/9dT0oFTAGREp8zMp7lG28V3hzTMz7zqDyatxHHK7t27dwX5+c9/fuLEiX/+539+8sknixKKh1MAVESnzM7rhzhO2bPpw3Nnf9k5+8s586DVShyn7NixY3OQHTt2pHm2tsEpADLbf/nC9l++4Dul7emHmMcpozd9SB3814M6Jx8cvUn/klAcpzz66KNbgzz66KPJnmc24BQAPb5T5jz9kPp6StcpJqF4sa+nbN68uXvis3nz5oMHD6bbJLvgFAA9qe+jDcd3SohQvHhO8Tzv4MGDIyMjmzdvHhkZcUQoHk4ByBn/9Cd8mphOcROcAuAcOAWnAMAiOAUAbIJTAGCR6YRoF4JTAGARnAIANsEpAGATnFIO1l35kULX32zUhupjhW6CSLNRG6o1mkVvBujAKTmxsLCQaPrxjcv2rv+j7rB51UXiw/GNyzLaTgM4BeKCU/Lg0KFD4+Pj8/Pz8WfZO3x5c3zLyQPbTh7Y9vLj925Ze634cO/w5dltrQ4XnOLCNkA0WnGsWbMGp1hjYWFhfHx8dHQ0kVbGv3/ZyQPbZt97duqV0SNPPbhl7bXiw/HvX5bpNiu4sD+7sA0QjVYoPjjFGvPz80m18uy6y04e2Db1yujUK6NHnn7Id0r34bPr9E4JnBKM1Ydq9bo8xn8wVh9aZOm73TG1RqOunFj4+3Nvrt6+3WzUlJG6ceoapcUrSw7M0uh+PVRrNAN66U0WXF1vJk6T8sQkFJNWtAvBKdEk1cqTN1/68uP3HnnqwSNPP7R/ZOOt16wUHz5586X62XrW8MbqQ/Ux3RhvrC7vZmP13u7YbNTUvdDf6Zcm6U3ebNSXpuyO1BxPCBuh+bZuIZqNFGbsfRmcLDh7dxu5+JInpiMUk1a0C8EpsWi32zt37hwdHT18+HD4lOuu/MjmVRdtWXutP9x6zUp/6I7ZvOoiwytB3b13SSDqmDHlMEQao04giyDwUDnI8A8chEWIRxKGAwd5IeHb0P1Snkz7jWajhlPyQ3WK6SFO6Yukxym7vn6JeFH21mtWig93ff0S04z+DiTu9PIYi04Rj2nk4w/fErVGU7tAadnKQtI7pStQnFIMklPUUyGcYoEU11MeW/PxkGu0j635uHHOZqNWq9fFvUgeI57pjDUWd3rduU/vrKHZqElTyLt0b2Sz0RAm7J5tCZc6uqdIsnGE1agbGe/cp3fBCKcUg3rFJBztQnBKGOle99l+/cUh12i3X39xyLz66yXimN6ZRsAT8jXaoFPqdfUSrTBbvd7d5TXXctWrsJKwlIWoG7k4Iv41WpxSBDglD1Lcn/LIdReLF2W3rL1WfPjIdRFOCT+5iSDZ1AABcEpOJL2Pdt+dy0eu+1h32LzqIvHhvjuXG+fUva4SdWNHs1EL/NlHKZAanFIOYr7fxz8NEP2hjtEjnJsgFOgHnAIANsEpAGATnAIANsEpAGATnAIANsEpAGATnAIANsEp5WCAerTcxVtycIqjDG6PFqeUHJySOepd+XHu0x/cHi1OKTk4JVu2bt06PDzc6XS6YzqdzvDw8MjISPiMg9ujxSklB6dkyNzc3PDw8MqVK7ta8YXij5mbmwuZd7B6tFIJLtCZVNaojxuI3601xhZnXKxnSuvVLNb0BM1PXPOMhIkHWIs4JVva7XZXIjMzM5JiQhikHq1UbBKib5Gd2sCsvVG9WuZQb0trIdsc8gT147XPKDjxoIJTMqd7bHL11VfHFMpg9WhD1x7VqdUaSizaab9Wt9n0BA3j9c+ITwvxPJySD+IpT6RQfAaoR2tae6xOrdpwi3KKfpuTO8XwkSI4BafkRKfT2bZtW7vdjjn9APVoTWs3d2o1V4gCSwt1in6xhidoHK97RjjF8zyc4iyD1KMNXu7sXSE2dGq112jjO0W/2LAnqBsfcqE35H9mIMApjkKPNl9MOkATicEpjkKPNl9wijVwSjmgR5sxOMUaOAUAbIJTAMAmOAUAbIJTAMAmOAUAbIJTAMAmOKVq7P7bP9YORW8XDAo4pWr8/J5ls+05aTi8+1vZakW80T7+t4QpYt1E4xTRz2tAwSmuEyc0KbLzr5erTnl9z4ZXo7QSePt+0p2lD6fEuKtMeIuzuslF7dc4xQBOcZpDhw6Nj4/Pz8/Hn2XH3Z++MDvnD/snpi694YGbGs8d+81PXt+z4fDuGx+769OmGaX32+V22BDj3UXNRm2oVpOjBouHN+zXjoFT3GVhYWF8fHx0dDSRVh698zPnL3TOX+jMtDpdp5xvdWZanfOtzvZNnzHNGN5iy46YTqk31D6LNnMJBYNTnGZ+fj6pVrZuvOLcTOfcTOf9mZ5Tzp3vnDvfOTfTGdl4hWlGqSuSrDgbmCMYapViUI1AHVY44RIbcbrgwFjQPv4DWYTa+EA2lVkpe6X8OALbJVcWynbxKAk4xXWSauWnt18xfa4zfa49/UHPKdMftKfPdd79oPPT2z9rmtFwPSVecTYgDlPdcaw+JKaOerltMaOia82KxUZlTFi8NsvKbHjgdixQgVlcjmYLKwhOKQHtdnvnzp2jo6OHDx+OnPjB//G5s++3p95rn31/tuuUs++1p96fnXq//cCGz5lmlI8Cwo5UlOKsse3oyccpvT1WcYqxNRv4otZoBhq7IfHaTCuzEQdzYqoy/JivauAU10l6nPJ3t33+9Luzp9+dPT3dc8rp6dnJ6dnT07Obb/uCacbg7hleb/URXo7JyilCZa6bkBOvooTHazOtzAaPY9Qfkb+w3vMM+0lWCpziNCmup/x4+Atvv9PaPzH17ZF93x7Z5zvl7anZt99p/WGq9aPheE7RHMOHFmeDJziB2G18p5has4FdMBiE0R2wZFuZ7Z616TQqL1fMAJsmqxw4xV3Sve5zzw++ePxMa//E1Irv/KMvlBNnWsfPtI6fbR0/M/s3P/iiacbggX/C4qz+gqV0TBDpFGkr5Gu0mgdB7yjbmUFlVnWK4UekqMM0WdXAKU6T4v6Uu7575cTp1sRk68lDJ548dGJisjUx2To22Zo43ZqYvLDpe1dmt7XukWW9rdLnL/2AU1wn6X20f7XuyjdPXXjjVOvNUxfeXPz3wpunLrxx6sIbpy5sXIdTQsYnXDS3xujAKVXj9rVfuu2WFRvWrtiwdsVtwr8bblmx4ZYVt6/9UtEbmCfZOGXx/IyDFD04BQBsglMAwCY4BQBsglMAwCY4BQBsglMAwCY4pWrQo4ViwSlVo5geLYQwYLfH4RTXKUePVnkDUBIsvqWOcm3x4BSnKUmPVpy82agl1EOzUavVLL13hnJt8eAUdylNj7b3HuM0+HOP1a1IhXJt8eAUp3GhR6u++1+bfVNbkmoJxVC2rTWaUvJATcCqmdiwLgHl2gLBKa5TcI82LD2rzhzc44QaUbDbFJxR01GRErCGTKwhQEu5tlhwSgkotEerpGc1YxZZ/OMaaCd6XaVoZ5Qu4ujD/fpMrLDG3lop1xYPTnGdgnu0i6ivp4S9wtLdTf0ga3CnEGdUdk3tHq7NxEYGaCnXFgROcZrie7S69KwmRqsVgBRkVWeUD+xNH/ahy8SaA7SUa4sFp7iLGz1azZ0n+iuZuiP1YLRanlG9VrA0xnBwY1inHKANVGfVazKUa7MFpzhN2Xu0+lMEF6Fcaw2c4jol7tGWaV+iXGsNnFI1HOnRBi9muA/lWmvgFACwCU4BAJvgFACwCU4BAJvgFACwCU4BAJtk7pRf7TsUMrwz+QZOsQs9WiiWzJ0Ssu5f7Tt05g+/xyl2sd+jjXnPVvRkwfctl4VBu2Wtbwp2yum3mzglnLx6tOJbdtQ3tlhwSoy7x8Le60xNtizgFKfJsUerSZbEOKBIcJtpjPf+NKnJVoDMnbLgeaYBp4STb49W+1bgSF3Ydwo12bKTuVM+cduBB8dPLix46oBTIsmxR2uORMrJgKW34TcavTpCIL60VEMa6h1eCCEFsfmmCwtQky05mTvlpkdf68zNL+jAKXHIq0cbxylSDiU4V3AyIRii9maDy6EmWy0yd4pJKDglPrn0aLVOMWbKNHNJxynN4EJMNevAnIEvqMmWlMydMr+w4A/tufkfP/NW9+E8TolHXj1aZY8KBFyzdoq0JmqyJSYnp7Tn5m/e/tolt+7HKYnIsUervu6jRuzFQ/mxhvTXOb5T1HMfzS5ITbas5OEUXygfG97/uU0HcUp88u3RBu9Pib5IKZhEe402zCle+DVazQNqsuUhc6c8/a9n/+LhVz82vP9jw/tv2/X7+fmF7oBTIil7jzYvMiw/Dub5Sz9k7hTfJh8b3v+ZjQfffrc1N7/QHXBKHErco82PDJ3CbbRJyckpX/nx7149+YEoFJySEY70aPMlG6cMZE22f0aTkMYp//D8iX3Nd9udubn5eWnAKQDVI3OnqCrBKQAVJnOndObmTQNOAageOAUAbIJTAMAmOAUAbIJTqgY9WiiWzJ3Snps3DTglCwrr0VYefg7xwCmuU5oerU0I05aYzJ0S/lkcOCWcUvVoLb4xhjBticncKf/86+dNw1vHT/JZHCGUrUdr2SmEaUtK5k7Zv/83puHMmbN8Zlg45enR1npnTrV6vabmUVKkYQnTlpLMncJnm/ZJaXq0avts6UtN7TVGGpYwbUnBKSWgHD1audLW7bKF5h0j0rCEacsHTnGd0vRolUpboP2WOg1LmLZs4BSnKVOPVv0DLVZa06dhCdOWDJziLiXr0Sqv9QavvqRPw8rXiAnTug1OcZpS92jVSx/Z71XZBN/sLWMQwCmuU9YerbwHlt4p3EYbE5xSNVzo0QYvgfiU2SmEaZOAUwDAJjgFAGyCUzKn8/nPMzAUPuT2C49TMifP/04ALTilUuAUKBycUilwChQOTqkUOTuFHi2o4JRKkbNT7PdoB5xK3OuGUypFn/+defVoPfGd/wXd3eW/QYYMrX1wSqXo578zxx6t+A7dZqNWiFWaZGgzAqdUitT/nbn2aHvZjwJpkqHNCJxSKfr578yxR6vWDYMH/WLGTDxDMhRUdH2zyPJrkwxtRuCUStHnf2dePVrdO+XUrKy2MKk6RfOWvTjlVzHpSIbWJjilUvT/35lLj3aRxT+xgRyiJ2RlffEYuijBIlxgsljlVzK0WYFTKkXOxylpe7QigT/0waysj/ACjbkeGZgsVvmVDG1W4JRKkfP1lJQ92sBLPcGSqthYbTYakj+ESwq9dKI6WZzya+AhGVqb4JRKkfPrPml7tOLhemA/kD7UR38h1D+DEKqrmuuikeVXMrSZgVMqRc73p1jv0epPFNyCDG0EOKVS5HwfreUebTn2KDK0EeCUSpHz+30s9mh1WVk3IUMbAU6pFLQOoHBwSqXAKVA4OKVS4BQoHJxSKXAKFA5OqRSFB9MZGDo4BQBKCk6pGvRooVhwStWgR1tBSnXjHU5xHXq0hfZohSxCgfe+4RScYgt6tF6BPdqxesAkY/Ukm1CONzVkAU5xF3q0SyML6dH22WjDKTjFSejRFtajNb0dO9bzFc6YelEp9SRqrD5Ua4wtzikG6OQ1l6qJi1Nchx5tMT3aRE7RPF+5LxWwpFjY7LamhuQnrVtYCZq4OKUE0KMtoEeb7DhFeb5qXVKzCPEbpq+VlWqevltNXJziOvRouw/z7dEapBLz+UY4RTVlPKfon75bTVyc4jT0aOUzkdx6tMEd059u6ZpPnOcbeu4jm9LwtdqvLEMTF6e4Cz1a6Wpmrj1a+dkmfr7Bl8DN12gTOUX/9D1FHabJ8gCnOA092niYju+r8oJuqZ4HTnEderQxqLhTAi8XOw9OqRr0aGOMLw8lbOLiFACwCU4BAJvgFACwCU4BAJvgFACwCU4BAJvglKpBjxaKBadUDXq05aBc97ElAae4Tl49Wt17YSvyOy++XVikwMwtTsEpBZFvj7bKTnEoc1t1cIq75NqjrbpTnMncVh+c4jT59miNTtEVwyLjsuI03b03eMRvatzqVxmyfGGZ5oiBE5lb8cdrfLKBn1LvQVHhtoTgFNfJq0drdormjXhx4rLSh3sI4dXIxq0XIzpr2gbDjEvJSGVMzplb8cfbXZrzidlE4JQSkEuPNuQ4JVVcVlqeJm5mbtwurT/4V1lZvmYbwmdc+pNfYOZWXZh+1W4lZhOBU1wnrx6t8quvKzMniMsanbIoK2V9wvL1OdXQ5QvLCJux+MytdmGuJ2YTgVOcJr8erVwfFIqRKeOyhnMfT4mnqss3R2cNy1/ahugZi87cqjnIMiRmE4FT3CXnHq0XPHiXDjLkI+44PVchiiq9whLVuNXmVEOWr7naaZox8CD/zK3qFP2qPUUdpsmcI3OnTIeDU0JxoUdrhzHZKWV4DTfLfJzb5y/9gFNcp+AebXqawqd7BI9LSrM7ZeiU4IvqlQKnVA2LPdp+EU4ExI+ZcPpFiwDZOKWEidlE4BQAsAlOAQCb4BQAsAlOAQCb4BQAsAlOAQCb4JSqQY8WigWnVA16tFlR4dvUrIJTXGcge7TCe5QDUJAtATjFaQa1R9ukIFtecIq7DHCPtklBtrzgFKcZ1B5tk4JsecEprjOgPVoKsqUFp5SAwevRBnZvCrLlAqe4ziD2aCnIlhmc4jQD2qOlIFtmcIq7DHiPloJsScEpTkOPNiEUZIsHp7gOPdqEK6UgWzA4pWoMdo+Wgmzx4BQAsAlOAQCb4BQAsAlOAQCb4BQAsAlOAQCb4JSqQY8WigWnVA1XerSmW8Qyu4XWDtzZ1jc4xXXK2qONdgrR2WqCU5ymgj3aoFOIzlYPnOIu1ezRSj00orOVA6c4TYl7tHKhQI6pEZ2tKjjFdcrao+3NJXWPlPYZ0dlqgVNKQCl7tLoqWnA9RGerCU5xnbL2aBM4hehspcApTlPiHq3+3Me0CxKdrQ44xV3K3aNVjeEvtaE7TiE6WyFwitOUuEdbzkAk5y/9g1Ncp6Q92izvRyU66zQ4pWoU36PNvN5KdNZpcAoA2ASnAIBNcAoA2ASnAIBNcAoA2ASnAIBNcErVoEcLxYJTqoYrPdrywn1v/YFTXKesPdpYkKStIDjFaSrYow1AkraC4BR3qWaPNgBJ2gqCU5ymtD3ael08fxir68Y0miRpqwhOcZ2y9miFScbqcm9tcQxJ2iqCU0pAKXu0gVibtGN3x5CkrSA4xXXK2qNdkpJ0JhEcQ5K2guAUpylxj9ZT0q2aMSRpKwhOcZdy92i7MwYPEIJjSNJWEJziNCXu0Xqepzvn0J+FJIYkrbvgFNcpaY/W83Q7p7XdlSStu+CUqlF8j9bzPPnqiH5MH5CkdRecAgA2wSkAYBOcAgA2wSkAYBOcAgA2wSkAYBOcAgA2wSnlYN2VHyl0/S7dW8pNaW6DU3Ii6e2w4xuX7V3/R91h86qLxIfjG5dltJ0GcArEBafkQYq37ewdvrw5vuXkgW0nD2x7+fF7t6y9Vny4d/jy7LZWh0tOAbfBKZmT7u3F49+/7OSBbbPvPTv1yuiRpx7csvZa8eH49y/LdJsVcArEBafkQYoMyrPrLjt5YNvUK6NTr4weefoh3yndh8+u0zulEasC6+nirN0x2r60ufOqC5zF69fGWHigvqBNFOgmSL1ksAFOyYmkWnny5ktffvzeI089eOTph/aPbLz1mpXiwydvvlQ/W6wKrL5qEigZ6Zyi77+qKda4/drIhQe3U7N8wwSplww2wCn5ET8ru+7Kj2xeddGWtdf6w63XrPSH7pjNqy4yvBIUowIbGTXRNE5MrcalB4E/+DH7tVEL18Ur62P6DptuOcmXDDbAKTmR9Dhl19cvES/K3nrNSvHhrq9fYpoxugJr0SlhKdbIfm3UwjV7vrHtGJgg9ZLBBjglD1JcT3lszcdDrtE+tubjxjmjK7Disf5YY3Gn15379F61NXRetSnWmP3ayIWrZyjyZ4OETJBqyWADnJI56V732X79xSHXaLdff3HIvFEVWPF0JbDDyddogzunqf+qplhj9WujF+4Fz5piX6NNvWSwAU7JgxT3pzxy3cXiRdkta68VHz5yXYRT+qrA5v13O+HljASTc6GkAHBKTiS9j3bfnctHrvtYd9i86iLx4b47lxvnTFOBbTZquk/hyIlke36S22hxSgHglHIQ8/0+6SuwwrlJ7tcWYu/5iXuxOKUAcAoA2ASnAIBNcAoA2ASnAIBNcAoA2ASnAIBNcAoA2ASnlAN6tD1oR7oNTnEUerRGcIrb4JTMUe/Kj3OfPj1aKCk4JVu2bt06PDzc6XS6YzqdzvDw8MjISPiM9GihpOCUDJmbmxseHl65cmVXK75Q/DFzc3Mh89KjleZK3qMNnCMJD6gcZAtOyZZ2u92VyMzMjKSYEOjRWujR9lYbqENRos0UnJI53WOTq6++OqZQJg9sndi+avLAVs/z6NHK4xP0aJemSDAL9AtOyQPxlCdSKJ7nTWxf5c3968T2VZ7n0aMNPrNEPdrFSXrfoESbPTglJzqdzrZt29rtduSUk7++r3X0jq9eOtQ6esfkr3/keR49Wk9cV4Ierf65U6LNFJziHBPbV3Wd4h+q0KNNdo1WuTgbPL3hGm224BS3mPinH079ek3r6B2H/mFF6+gdU+Nr3vqnH9Kj7WdyyBmc4hYT21fNv7Fx6vnvffXSoannvzf/+40T21fRo5Wn5oTFYXCKW7x41ycXjj8wfbTxq/u/Nn204b31wIt3fdKjR+uTuEcLBYBT3OLk/pEX7/qkOJzcH3HHLYBT4BQAsAlOAQCb4JTS8xq4TdG/IHmDU0pP0bsMRFD0L0je4JTSU/QuAxEU/QuSNzil9Ei/wbv/9o+1QyG7E7yGU3BK6ZB+g39+z7LZ9pw0HN79LbSSjGfWLxtatv4ZC0sq+hckb3CK60SGJqXf4J1/vVx1yut7NrwarZWHVy/d9rb6YQv7Ulp6m1HkduCUtOAUpzl06ND4+Pj8/HzINNJv8I67P31hds4f9k9MXXrDAzc1njv2m5+8vmfD4d03PnbXpw2/+Q+v7u3Cz6xfVtDe/PDqgEkeXp1kt35m/bJibagnt98WR8Ap7rKwsDA+Pj46OhquFek3+NE7P3P+Quf8hc5Mq9N1yvlWZ6bVOd/qbN/0Gf0v/jPrl9n5q9wPotdSgFOcAKc4zfz8fKRWpN/grRuvODfTOTfTeX+m55Rz5zvnznfOzXRGNl5h+M1X9+fg0f/Dq/0Hz6xfFjgzEXdk4Wt5sqVV+Cwt1p/h4dX+qKVVyMRahXDGtLgQYUxgG5atf3hxztUP96aS1yyvVH7O3el7D3TPGafgFOeI1Iq0A/709iumz3Wmz7WnP+g5ZfqD9vS5zrsfdH56+2cNTunuXcLuIOzkD68eWv2w7lBAu8NrjhhEYQSm660xkVM0qxBHPbx6KCjExe8s+av7fP3RYc/rmfWrlxbUXU5vU4UNUid77bXXcApOcZB2u71z587R0dHDhw+r331N+N0VQ7Zn35/tOuXse+2p92en3m8/sOFz6j4r70q93by76ywqZWlHFHZ9/UGEMpl40NA7LgjuysmOU5RViNPJi+p+S/yG6WtlpZpDEPGwLWSy117DKTjFNeIfp3jBkO3p6Z5TTk/PTk7Pnp6e3XzbF9R9VqH3d9a/zKL8Fff3HWWnkqcTJtP7QprBIJWYq4hwSleOCZ3yzPplQ8pBydIMvctQhslewyk4xSniX0/xdCHbb4/s853y9tTs2++0/jDV+tHwF5RddmkX0h4wPLN+2bLVq5f1Hq6Xdm7h2sIz65d1LzjIkwXPBx5erT/lEHdMf7pl65+JvYrQc5/eRZZQp3TXpTuy6a1d/cmYJsMpOMUdEr3u4+lCtr5QTpxpHT/TOn62dfzM7N/84It6pwSO2wP7eXDv1NzE0p1x2erV4p9xeVmaEwPdKzW6S6sxV7E4WeQ12kROEbZbXLuiDtNkOAWnuET8+1O0IdsnD52YmGxNTLaOTbYmTrcmJi9s+t6VJqeYMF3lqDj2XpjO7bfFEXCK68S8j1Ybsn3zVOvNUxf84Y1TF944dWHjuoROcfSej8yxdxstTsEpZcP/xdWGbG9bu2LD2hX+vxtuWbHhlhW3r/1S/J1BfLF1gFBfU++Pon9B8ganlB7/F1cbsrW0U0BfFP0Lkjc4pfQUvctABEX/guQNTljzA0cAACAASURBVCk9Re8yEEHRvyB5g1MAwCY4BQBsglMAwCY4pWqYerRFbxcMCjilaoT0aIvetPLD57/HAKe4TuR9tBLhPdrQWRc/4nyo2E85Fz4NPqPPgx+ry88writwSgxwitPEeb+PRGSP1jCfuKM1G7WCrDJWD3ik2ahlIThZKs1GrVCNVguc4i4x35csEdmj1c/WbNSK/wOsHkDox1leEUqxCk5xmjj9FInIHq1hvqgTgrG6/0A4NamPecEdUvhanmxpFcFTGn+Gsbo/amkVyoZ1V6xZUdRi63Xds5COyoRn3luaxmXyNsg/iO6Keg90P4hqg1NcJ6lWInu0xjkX9ybhN1/YycfqQ/Ux3Z907a6u+csvCiMwXW+NeqcsTax3SrLFLj6LwBLE5QZPvfSaXZqrvjRdd7LeioQtUSerOjilBIT3aCUe/B+fO/t+e+q9tqlHGz774p/VxV/+7l7S3Rl98UiXPLS7enAy8c9/75hCOUTQO8V8nBJnsZpn4elVJW+AosbgCOUQRHdINXhHKjjFdZIep/zdbZ8//e7s6XdnTT3aGOvs/Un1d2jtvqXZf+XphMnCj0GU9Wq2xeSU6MXqn4X/UD6Lkp0SXHrwSEg+KFlaQG82w2TVBqc4TYrrKT8e/sLb77T2T0x9e2Sftkerny3wUo+wbzUbtVq9Xus9bEi7tXAZofcqjTpZ0BdjdfW8o7sEw+s+2hXFW6z8LHoLr9UCI5Vzn941kaBAgz+hwLUZcUWmySoNTnGXdK/73PODLx4/09o/MbXiO/+o7dGaZhTvCxF/96WXd9WbWLoz1up18S+2vCzNOYDub3fg/hTVMPKKYi5Weha9OeWRumu0qlOEtQY2RlaHabIqg1OcJsX9KXd998qJ062JydaTh05oe7RJt0F/epEXi7t431tg51kMzPlLP+AU10l6H+1frbvyzVMX3lgs0Wp6tMlWX429yNKz4DbaOOCUqnH72i/ddsuKDUKJVurRxl+Uf4xQdqPYeRbqC+1gAKcAgE1wCgDYBKcAgE1wCgDYBKcAgE1wCgDYBKcAgE1wSjlYd+VHCl1/GW594440N8ApOZH0dtjxjcv2rv+j7rB51UXiw/GNyzLaTgM4BeKCU/Igxdt29g5f3hzfcvLAtpMHtr38+L1b1l4rPtw7fHl2W6ujDE4BN8ApmZPu7cXj37/s5IFts+89O/XK6JGnHtyy9lrx4fj3L8t0mxVwCsQFp+RBigzKs+suO3lg29Qro1OvjB55+iHfKd2Hz67TO0UpyOprrLqGa3dMrdFQ38MrFF6l973oKmbxYrTBpUdPb6zMLp70RERqwzYALIJTciKpVp68+dKXH7/3yFMPHnn6of0jG2+9ZqX48MmbL9XPprZXNTVWtSUiJ5/1qZFAttWcZY0boxWX3U+8Vq1Aap+geQPAKjglP+JnZddd+ZHNqy7asvZaf7j1mpX+0B2zedVFhleCtAXZ4Bg1JSKN0bRGtN1F4UHgKCNmjNYLfjthvFaNv4YEJSM2AGyCU3Ii6XHKrq9fIl6UvfWaleLDXV+/xDSj2l6Vx1h0SlhvNTJGq254+PTyCnTx13jShCzBKXmQ4nrKY2s+HnKN9rE1HzfOqbZX5THimc5YQ/dxN3KHVYmuKp8+kTxGKwQZ08Vr1VaueO5jfoLdBUIm4JTMSfe6z/brLw65Rrv9+otD5tVfLxHH9E5X1KqrcI026JR6PawxmzhGK9xOkjZeG4y/ymF90xPkYkq24JQ8SHF/yiPXXSxelN2y9lrx4SPXRTilr2N/zhSgD3BKTiS9j3bfnctHrvtYd9i86iLx4b47lxvn1P85D//bLH4Sh64wDxAbnFIOYr7fR22vxq2xCqcGCAX6AacAgE1wCgDYBKcAgE1wCgDYBKcAgE1wCgDYBKcAgE1wSjmgRxtN6nakhehk913ggFNchR5tYnCKG+CUzFHvyo9znz492lKBU3rglGzZunXr8PBwp9Ppjul0OsPDwyMjI+Ez0qMtFTilB07JkLm5ueHh4ZUrV3a14gvFHzM3NxcyLz3a/Hq0Uq5qbHFrFsubpm0IbC5O6YFTsqXdbnclMjMzIykmBHq0+fVogzP2SptDvWdZE77S/RxwSg+ckjndY5Orr746plAmD2yd2L5q8sBWz/Po0Q5l3aPVZzW1X5t+DjilB07JA/GUJ1IonudNbF/lzf3rxPZVnufRozVsg70eLU6xCk7JiU6ns23btna7HTnl5K/vax2946uXDrWO3jH56x95nkePNpMerbABiZyi+TngFAGc4hwT21d1neIfqtCj7Y6y2aNN6xTdzwGn9MApbjHxTz+c+vWa1tE7Dv3DitbRO6bG17z1Tz+kR+sMvKYeDU5xi4ntq+bf2Dj1/Pe+eunQ1PPfm//9xontq+jROgNOiQanuMWLd31y4fgD00cbv7r/a9NHG95bD7x41yc9erSugFOiwSlucXL/yIt3fVIcTu6PuOMWwClwCgDYBKcAgE1wCgDYBKcAgE1wCgDYBKdUjd1/+8faoejtgkEBp1SNn9+zbLY9Jw2Hd3+rxFqx0HZMgXK7fTGbUT5wiuvECU2K7Pzr5apTXt+z4dUIrSg35Pfe8JsaXcMpBcl3ZhvvLsApKcEpTnPo0KHx8fH5+fn4s+y4+9MXZuf8Yf/E1KU3PHBT47ljv/nJ63s2HN5942N3fdown3WnSO91zvXu00ycAvHAKe6ysLAwPj4+OjqaSCuP3vmZ8xc65y90ZlqdrlPOtzozrc75Vmf7ps8Y5rPtFAuHOenBKQWCU5xmfn4+qVa2brzi3Ezn3Ezn/ZmeU86d75w73zk30xnZeIVhvjCnJO/FNprBZElwRSEz2gnNBoOZlhKz+pZCrzEnb7bhB1d5cIrrJNXKT2+/YvpcZ/pce/qDnlOmP2hPn+u8+0Hnp7d/1jCf2SnperFed+9V22yhM9oIzQadYikxK86iVnjVzdZONgDglBLQbrd37tw5Ojp6+PDh8CnFkO3Z92e7Tjn7Xnvq/dmp99sPbPicYdaQ45R0vdjeYnp7cl6hWfk4xUoOMjihrsKreTYDeKSCU1wn0XGKGLI9Pd1zyunp2cnp2dPTs5tv+4JhVsUI8g6cuBcbXNbSeUcuodlsnWKo8Oo22xTrrTI4xWkSCUUN2X57ZJ/vlLenZt9+p/WHqdaPhk1OkUKMwllGul5s4KUesd2ffWg2uVPCErNqYlJb4VU32zRZ1cEp7pL0dR81ZOsL5cSZ1vEzreNnW8fPzP7ND74YsgTxTEIK6cvH7zF6scIk4ScDtkOzKY5TQhKzmmytvsKrqMM0WcXBKU4T//4Ubcj2yUMnJiZbE5OtY5OtidOtickLm753ZQ6bXSpin5YM0vlLP+AU14l5H602ZPvmqdabpy74wxunLrxx6sLGdThFIq4quI02JjilImhDtretXbFh7Qr/3w23rNhwy4rb136p6C11jRhO0bwoDkZwSkUgZAuOgFMAwCY4BQBsglMAwCY4BQBsglMAwCY4BQBsglPKwVVXXVXo+vu7h9TB28Uc3KSqgFMcZdOmTd8ys2nTpnw3B6dAXHCKo3zrW9867r/370zr+JmW+jDfzanGe12q8SxcB6c4yje/+c3jZ1r+18fPtG68MfDwm9/8Zr6bU429sRrPwnVwiqN84xvfECVSr/838eE3vvEN7VyBA/qxupR3Fd7rH1J1rTUaaujIEG2VKwTCaHFCKerYkIqw2u3RNAzCmmn674mLbfRCDubGrdxL0GwqRIBTHOWGG24QT3auuuoq8eENN9ygny0YDpHSaktFEG3VNdgj0TlFE23VOkWfQxHikb0IiVJ61DRo1YWoaMuv6tOUtKebLDi7sqkQDU5xkauuuuq//te/7A5XLSGN1M0qFtWk3rOglPACoybIaAgs6o9TlH6tNj7dDd7qm7LKQjRjlE0UjzXCn4WxR6n9RqEfLFI2cIqjXP9frg85Trn+v1xvmtH/9Zd29sCYzJ3Se6xErA1OiRCF+G11jKH8mt4p2qMnnBIXnOIo1113rXgBRX1onFOqomrGhFddhR20d8xviLYKJwXiSLlfG+4UbVNWtxDdYmUrBYOy0tOMd+7Tu+SEU9KAUxxl1apVokT+/M//XHy4atWqkHn110vUP/biJUmhndq7Rht0ii7a2ptPTK7K13IjnGJsykqjdIsVlKdshvo0F0fEv0aLU5KDUxzla3/2Z+LJzp/+6Z+KD7/2Z38WMm/sj6yIPT9AbHCKo3z3u9+95qvXmIbvfve7xjmTvWLSnUL3KRwAycEp5SDm+33ET+80jdEjnH0gFOgHnAIANsEpAGATnAIANsEpAGATnAIANsEpAGATnAIANsEp5WDdlR8pdP2lakdyH3Ch4JScWFhYSDT9+MZle9f/UXfYvOoi8eH4xmUZbacBnAJxwSl5cOjQofHx8fn5+fiz7B2+vDm+5eSBbScPbHv58Xu3rL1WfLh3+PLstlZHqaqLOKVQcErmLCwsjI+Pj46OJtLK+PcvO3lg2+x7z069MnrkqQe3rL1WfDj+/csy3WYFnAJxwSl5MD8/n1Qrz6677OSBbVOvjE69Mnrk6Yd8p3QfPrtO75TB7dFKtbiQpcgTaxdVa4wtzrjY35Q2WLNYw4/IOF77rIWJS6tFnJITSbXy5M2Xvvz4vUeeevDI0w/tH9l46zUrxYdP3nypfrYB7dFKVSch+hbZqQ3M2hvV27QhtQKjXazhR2Qcr3vW0sTlBKfkR7vd3rlz5+jo6OHDh8OnXHflRzavumjL2mv94dZrVvpDd8zmVRcZXgkayB5t6PZHdWpVV4lTmL5Wj1QMPyLTeP2zLtU5pgGckhNJj1N2ff0S8aLsrdesFB/u+volphkHsUdr2v5YnVq14RblFO1iUzhF86xxyiI4JYIU11MeW/PxkGu0j635uHHOAezRmrbf3KnVXGPSn4vpvtYv1vAjMo7XPWucsgROCSPd6z7br7845Brt9usvDpl38Hq0wcudvWvMhk6t9hptfKfoF2v6ERl/dOYLvSH/tyUAp+RBivtTHrnuYvGi7Ja114oPH7kuwin0aHPHpIMqa*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" alt="" />
我们自定义的Mapper.xml有一定的命名规则。
自定义mapper.xml:
自定义的mapper命名规则:XXXMapperCustom.xml
因此我们命名为SyuserMapperCustom.xml.
在yycg\base\pojo\vo:存储自定义pojo类
查询结果集统一采用resultType,需要扩展一个类
扩展类,命名规则:XXXXCustom.java ,用于提交信息、查询条件,原来生成po类不够用要使用扩展
通常自定义扩展类需要继承查询列较多的po类。
parameterType 输入参数类 统一采用包装类。
XXXQueryVo.java 用于页面向action传递参数,将参数传到mybatis。
内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!-- 自定义的Mapper.xml要遵循的规则是:***MapperCustom.xml,当然还要根据这个名字自定义接口 -->
<mapper namespace="yycg.base.dao.mapper.SysuserMapperCustom" >
<!-- 开始写用户的查询,这里有很多的规范,好好学
输入参数parameterType统一采用包装类,命名规则是 --> <!-- sql片段
-->
<sql id="query_sysuser_where"> <if test="sysuserCustom!=null">
<!-- 用户的名字 -->
<if test="sysuserCustom.username!=null and sysuserCustom.username!=''"> and sysuser.username like '#{sysuserCustom.username}' </if>
<!-- 用户的id-->
<if test="sysuserCustom.userid!=null and sysuserCustom.userid!=''"> and sysuser.id = '#{sysuserCustom.userid}' </if>
<!-- 用户的工作单位-->
<if test="sysuserCustom.sysmc!=null and sysuserCustom.sysmc!=''"> and sysuser.sysmc like '%${sysuserCustom.sysmc}%' </if>
<!-- 用户的类型 -->
<if test="sysuserCustom.groupid!=null and sysuserCustom.groupid!=''"> and sysuser.groupid ='#{sysuserCustom.groupid}' </if> </if> </sql> <!-- 这里的parameterType是输入类型,这里是一个包装类SysuserQuertVo,里面封装着SysuserCustom ,SysuserCustom也是我们自己定义的扩展类 resultType是返回的类型,是我们定义的类。
-->
<select id="findSysuserList" parameterType="yycg.base.pojo.vo.SysuserQueryVo"
resultType="yycg.base.pojo.vo.SysuserCustom"> select * from
(
select SYSUSER.ID,
SYSUSER.USERID,
SYSUSER.USERNAME,
SYSUSER.GROUPID,
SYSUSER.SYSID,
DECODE(SYSUSER.Groupid,
'1',
(select mc from userjd where id=sysuser.sysid),--其中一个
'2',
(select mc from userjd where id=sysuser.sysid),
'3',
(select mc from useryy where id=sysuser.sysid),
'4',
(select mc from usergys where id=sysuser.sysid)
)sysmc
from SYSUSER
)sysuser
<where> <include refid="query_sysuser_where"></include> </where> </select>
</mapper>
对于上面的SysuserMapperCustom.xml代码中提到了两个扩展类进行讲解:
aaarticlea/png;base64,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" alt="" />
上面的红色框里面的yycg.base.pojo.vo里面存放的就是扩展的类。
SysuerCustom.java如下:
package yycg.base.pojo.vo; import yycg.base.pojo.po.Sysuser;
//这是自己写的扩展的pojo类,统一放在vo包下面。同时去继承原始的po类,继承po类有什么规则呢,
//要继承查询的列数多的那个po类。
public class SysuserCustom extends Sysuser {
//单位名称,本身的Sysuser类里面没有的。但为了业务需要,进行了扩展。
private String sysmc; }
SysuserQueryVo.java如下:
package yycg.base.pojo.vo;
//包装类,用于页面向action传递参数,讲数据传递到mybatis.在Mapper.xml中的sql语句中就是
//把这个类当做输入类的。
//把SysuserCustom包进去
public class SysuserQueryVo {
private SysuserCustom sysuserCustom; public SysuserCustom getSysuserCustom() {
return sysuserCustom;
} public void setSysuserCustom(SysuserCustom sysuserCustom) {
this.sysuserCustom = sysuserCustom;
} }
这样子mapper.xml就写好了。
下一篇文章就是讲解Dao和Servie层。