1.建表

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`gender` varchar(1) NOT NULL,
`name` varchar(255) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
`birthday` date DEFAULT NULL,
`classesid` varchar(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `alias`;
CREATE TABLE `alias` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`userid` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `classes`;
CREATE TABLE `classes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cname` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

2.po,vo类

package cn.edu.cqupt.mybatis.po;

import java.io.Serializable;
import java.util.Date;
import java.util.List; public class User implements Serializable{
private Integer id; private String gender; private String name; private Date birthday; private Classes classes; private List<Alias> aliasList; }
package cn.edu.cqupt.mybatis.po;

import java.io.Serializable;

public class Alias implements Serializable{
private Integer id;
private String name; }
package cn.edu.cqupt.mybatis.po;

public class Classes {
private Integer id; private String cname; }

目录结构

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARYAAAFmCAIAAAAnDSLZAAAdkklEQVR4nO2db3AURd7H88b3vLDK85We5/mgPoclZ3ne1pVnWc8j7HNXB2rFCp5wwdMBCq9KD32EU88QEy4iPqwmQTwVIhqIoBwXYYVTHkAgGE994h80ZURIApewycao/JmEP/O8mN3Z7pnumdnt2emeyfdTU6nMpLunezLf7Z7e/n2nwgAACFAhuwIARBtICAAhyish7capZS0fAOkEI6G9T11vbYZh1E672LkFciIAVCMACb1x3+Xkbv//7aiddvH4qX8MdjStmH2L+QskBOKKt4R27drV0NDA++ve+uv1wdX64OrR7tRgV8OR3Yu/OdxRO+3iwY6mTzbVaDdONX+BhEBc8ZDQzp07r7766iuuuIKX4J36qfroe+S2ZMZNtdMuXjH7Fu3Gqea2YvYttdMuZj4X9aQSFTm0dP6Alk5rFRUViVSPYRhGWsunyB0AQCXcJGTqp6qqyk1Cj0/VB7eQ29lTh62BnHbjVLeBnKkXx6GKwsG0BuUAteFKyNLPrFmzXCRkGEamc21va2Wmc61hGG/88RqXzZHV7GFIjdCqSmsQEFActoRI/XhKqLe10jj7aW9rpWEY+pHVzG2wq4ElIROz5zG1AgmBiMGWUENDwxUEy5Yt4+XP7F6hd9fMnFyhd9dkdj9tGIbe3WDbuPrpSaXS+d9yyrGN7dJaYVSXTkFNQD1EJ7V7WystCeU6oq4acnPtf4i5gpxQHI9HhQkH21MTAEogJKHeNxdnd1fr3TWfvHSj3l2T3VXd9+ZivauwuesHgBggJqHWynNf12bffXDm5Irsuw+eO1Tb21q5Rvs3cguqogCoiZCEOuqnnO9fNdqd2tZ022h3yuhb1VE/JaiaARAJhCR07EBLR/0Ucjt2oCWomgEQCRDsAIAQkBAAQkBCAAgBCQEgBCQEgBCQEABCqCWhB35xkWgR3itTc0uGilkvlNbKu7yIEfUBooJkCe2qvXbPn35ibY2Vl5C7u2qvdcnLvu+8JFTS3RpJCWGZezgEL6H9+/efOHHCZ+I9D1/ds2vNsc6Xj3W+/NGmp9bcX0Xu7nn4am7OnlSCeYN43Tgl3ViWhMrUXZSvWIio7AQvofXr17e1tQ0PD/tJvOuhq451vjz27dvZj9d/sf25NfdXkbu7HrqKl5HbL0BCJOXuPkGZJJTJZF544YWjR496Jn77gauOdb6c/Xh99uP1X+xYbUrI2n37AZ6EbJ+vhZgJOgrW7rtApLOik/jBFoXfzTuRyG1XIWH5YAvMcJ6CUTHirGTku0feRCqluTSWcZ1AGSiLhAzDGB4eTqVSX375pXvit/4w+aNNT32x/bkvdqw+0FK7ZMZN5O5bf5jMyUd+upJheaTZAtnfUGrIH+1Jafm/W2W4Scjgdxe05UOhRqxTMAwh8sVSf+HmJevn3lh0QyFQLgkZhjEwMLB06dKRkRFeStJ0Yc39VUtm3GRua+6vMrfGykvYc3Tkh6ttZGbt0j0T2RHZvRrs/VKJEiKOU7v2UzCGkj2pRIWmac5pQo+8Xo1FNxQC5ZJQNpv17IVI0wVz/mDJjJvI6YTNv/8xJyvx4epyV7FunsJh8kOcGXguLiHmKTgSqkgkEuQf/OT1aix6oRAoi4SGhoY8n4WcpgvO6YTXqn/EyU3eMi5jG3KAl/u1kJMa0iWIXoiUWDEDOaoS9jueLs1mCEFJzlFRXl7vxuILpxCQNiPnNF1wTie03nUZLzv16Uo+SKdsDwX2x3H7nWlm0zTb8zx9sHC23F+5IzHb2dincBhC2J5ezOOeeb0bi04oBOR8L8Q0XTjQUrvm/ipyOmHdLK6EFBvkS/q095ihV+saxRU5qxOYpgsts37YWHlJy6wfWtv+J9zeraLSICW0uvSkEn6tXrE6IRzkSIhnuhDAGjk5hChnYsAGhaiAHAnBdAHEBrVWagMQOSAhAISAhAAQAhICQAhICAAhICEAhFBLQjK/F8I3kaAkIuydEDCQECiJyHonBI5kCam0XAkUQ1S9E4IHEgIlEVHvBMNhFZDWzMX/3MVjLGsBpukCO+rOvSj/5TBdFlxcGYDqRNc7wXazpTUq+sZ2JzKtBTimCx4SYp/adzl8lwX0QtEkmt4JjEGXTSQMfdn7CV4QtbuEnKcurhyeywIkFFWi6Z1QgoScAyRICARBdL0TbPYDLAkVRnRMawGODwHTPoFdlHVq3+XwXBYgocgSVe8Eh/2Au4T41gIsHwKGfQK7KNrvwE85XJcFnisDUJ3Ieicoi7efAXqbWBFh7wRFgYQmGPBOCBpIaIIB7wQAhFBrpTYAkQMSAkAISAgAISAhAISAhAAQAhICQAi1JATvBApG1AZQDngn5IGEQEnAOyEPAr9BScA7IQ8kBEoC3gkKeycQJXDeeVnBOuh+HUDAwDvBUaI63gluIa10NQrluF8HEDwyvRMe+MVFjZWXWE4J8E7gSijXALr7pKpBfi7wrwMoAzK9EwzD2Pz7H5PzB/BOoLAfM3uwwriVlpAVlw4JhYo07wST16p/5DKdMEG9E6yMhL5Sdi06BnK5HUgobCTPyLXedZnLdMIE9U5wSog8A6v29ukESChEJH8vtG7WZeT8AbwTSk4LZCF5dcL+J6aSZgnwTrAnRS+iPFgjFzSBSCg3RkMXFAHUkhAAkQMSAkAISAgAISAhAISAhAAQAhICQAhICAAh1JIQvBOEKXVFQwnf48bkiokC74Q8MbkhIKGwgXdCnpgEfhdVjthJISHDMKSv1IZ3Qh5IKKrAO8EWy6qSd4LZqHQuZEJLFxI6YjmsG5pZvlUH/kk9fBoYbadqy87DDMeIG/BOcJSojneC2ahCpJ8jLdGstFYIbGKXr+UrzTypa/isR0vZhfPcHeIGvBMcBagT+E0Vzfyd/MW9/PwO1SewJOT0afBsKbNwrrtD3IB3gmM3ShLKNZUpBWqXCEhnV8bFp8FXSx2Fc90d4ga8E6ws6nkn+JCQ0ZNKJDQtQbadVT6dw30gZ/dpYLedaCm7cJ67Q9yAd0J+ZKegd4IfCdlvVV75hUoTlbGdlOPTQLad3VJ24ZhOKBF4JwTmnRDICUGZgXdC0IQsodg+pUcGrJELmhAlRE50A1moJSEAIgckBIAQkBAAQkBCAAgBCQEgBCQEgBCQEABCqCUheCcIE53A7wBc96316TKBd0IeSAgSKgl4J+RB4HexyP/QiamE4J1QEpBQaTWIqYTgnQDvBEdiR1FUnKxLM3kXzYizhAx4J3DLgXdCHluouUszuY2KtYQMeCfAO8HdO8HWC7k1k9eoWEsI3gnwTvDwToCEeMA7Ad4J7IGc7bIUKSHWRYuvhOCdAO8EW2paAaVIiNWomEoI3gnwTgia4C9agMA7IWhClpDSd1dQKN1IrJELmhAlRM4AxxpICID4AgkBIAQkBIAQkBAAQkBCAAgBCQEgBCQEgBBqSQjeCcKU+hUKI0IE+ALeCXkgoVi0P3zgnZAHgd+gJOCdkAcSAiUB7wQCeCcwE/qtDy8zr0r8qjKuMJFYsfEmvBMcJXpIaKJ7J3iYHHDOwmsyxxHB+c+iE6sEvBMcBUQp8Dtc7wR/IYBuZ3Frcn6X+c9SeMwJ7wTHbpQklGsqUwrULhGmza6M/fymEFyayvrd8yxuTSYkxNDvBJMQvBPi653gWh/+WXhNZh1n/rMmmITgnRBT7wR/PiF+m8y9FPw5Ce7tIBF4JwQNvBPs8JqsriqKAt4JQQPvBDuQUIjAO6HYU1WoOdFLAQkBAPhAQgAIAQkBIAQkBIAQkBAAQkBCAAgBCQEghFoSgneCMKV+2cKIEAG+gHdCHkgoFu0PH3gn5EHgNygJeCfkgYRAScA7wR4e6RX4zSxqgngn8AunrsDEUiW8ExwlekhoInsn8Aqnrwl1PeKPTO+ETOfa3tbKTOdawzDgnVBS4HfI3gk+Q7Un1vhQpndCb2ulcfbT3tZKwzDgnRAF7wT/EppAk3vSvBMyu1fo3TUzJ1fo3TWZ3U8bhgHvBOW9E9zcDhxPZRMFaTNyva2VloTMjgjeCcSTvZreCXy3A0wnBIif74V631yc3V2td9d88tKNendNdld135uL4Z1QlhMGycR6yPGJnNUJva2V576uzb774MzJFdl3Hzx3qLa3tRLeCaUQ6l0NCTGQI6GO+inn+1eNdqe2Nd022p0y+lZ11E8x4J1Q/KnCHTZBQgzkSOjYgZaO+inkduxAi5SaACCIWiu1AYgckBAAQkBCAAgBCQEgBCQEgBCQEABCqCUheCcIg8DvsIF3Qh5IKBbtDx94J+RB4Hfw6UvLEjHgnZAHEgo+fWlZIga8E2yxrPBO4HknOCvJuKR0Xl67YgW8ExwlwjvB1TuBKNpxSRl50QsVD7wTJoR3AvOSMvJCQsUD74QJ4Z3g9uhI5oWEigfeCfH2TnCOEQuX1JkXEioBeCfE1zuBSM+5pM55DCpLHIF3QtDE2TsBMIB3QtDE2TsBMIB3QtDE2TsBMIB3AgBCqLVSG4DIAQkBIAQkBIAQkBAAQkBCAAgBCQEghEISSiaTIZ4tt+5ESyHgGQghU0J1dXUL+NTV1ZXv1PRiZUgIlI5M74QFCxb0D+nW5twNvG4WWFcGgkKmd8K8efP6h3Tz9/4hff58anfevHmB180CEgJBIdM74Z577iE1s3XrVn38vLXb2NjomtvdwIBcfW/3VCDSaWlqzZr1FypmAQAXZHon3H333dawbfzs+WQyaT4FndTPndTPtbe387OyDQzoGBoijNnx2EOFfRIpGZFzALgizTshmUzOmfO7OXN+t3Llys7OzmQyWVVVZcqpqqrKmlRgn8Mz+prp0EEEhDMkxIvfBsAVmd4Jd/32LlMz+vh5cy7BloA7qeBLQs7AT0gIBI807wTDMGbNqrJkM3dutfk7OSnHn5djGxg4TNWMIiSEgRwoCZkzcpWVlZaEZs+ebQqGCSOz08DAZTrBl4QofwFMJwCfyPxe6Lbbbze7mpP6uTvvvPOee+5xpmEeDAMM5IA/ZK5OWLRo0YyZM2bMnFFXX7d33971GzZUz62eN38+uYVYnZ5UguFJCoA7Cq2Rq6mpkVwDwtUJ+gE+UUhCAEQRSAgAISAhAISAhAAQAhICQAhICAAhICEAhFBLQiHaJ8A7AQSDZAnJsk+AdwIICskSkmWfgBVwICgkS0iWfQIkBIJCsoRs9gmadi+567pMO3zvhLRWkUilc+votHQhOf2aRsaLErU0+wWKrOPMphGJIX3FkCwh0j6hf0hPJpPk7t13383JJ8U7gbiDyZdjkc9VGvE2VPL9xIyX/PKO2wKcCq96xcu41ESmhCz7BHNL5rEdZOSU453g6+XBjn6I8xZ73nGyKy10RHgdpLpI7oUs+wRmL3TXb+9iZ5PjneAlIbLroqf8ipMQY6gGCamLZAmR9gn9Q7pzl5MvRO8E/6+wJ471pBLUgI0q1/04WQ0jrTF1CBRCsoRI+4T+If2OO+4gdysrK7k5Q/NO8C8hMr+mUb2Q5pw14B13mZMo9uqCMJAsIcs+wdxuvfVWcve222+XVrPApr15dz9UERMkS8iyT2BuixYtCrEuZfJOgIRizoRdI8eiLN4JkFDMUUtCAEQOSAgAISAhAISQJqGKigr8LOEnUA05/xXcDaWB66Yg+JcAIAR6oSiB66YgCv1Lwv1SqKzeCWkNX/lMGGT2QrKME4yyeyeUS0LohRRE5vuFZBknGGUP/EYvNIGQ85Y789NUlnGCEVkJoRdSkLJIKJPJ+HnXqs04YevWrfr4eWu3sbHRNXf43gmsKARblGkhloKI4g7MbgGoSLne+D08POzyxm/z05Q0Thg/ez6ZTJpPQSf1cyf1c+3t7fyTyPBOYKwLtYXHMSUUoN0CeiEVKZeEDMMYGBhYunTpyMgIM5nlkbBy5crOzs5kMllVVWXKqaqqyu1FxYZE7wSq/+BnoXuhwOwWgIqUS0LZbNazF7KME/Tx8+Zcgi0Zd1JBjneCVUheSOISKs5uAb2QipRFQkNDQ36ehUinhLlzq83fyUk5/rycDO+EnlTKHobNG/v5llBxdgtARWTOyJHGCbNnzzYFw4RRhATvBOIEjHOSMxD+B3JF2S2gF1IRmd8LWcYJJ/Vzd955J9O71NXQtJyUMO1ddrsFoCIyVydYxgl19XV79+1dv2FD9dzqefPnk1uIlRL2Tii/hNALKYhC/5KamhrJNRD0TkAvNCHBSu0ogeumIPiXACCEzF4IP0v7CZQC/xIAhICEABACEgJACEgIACHKKKHR7u1HWiaNdm8v3ylUp7A4SMZXPZm2tscWfJBxHD+4vLmpbcQwDKP/g6ZpOw6GW6vYUUYJHWmZNPre5CMtkzzS0evVCjCjAeg1Y3Qpbn8OBYdOZEjo0MZpzY9Na97YUZqEctlzCYA3XAn5X+rGo6tm0pGWSd4dEXvJJ7kK2vP+s62Y9n+vBntnu5QWqoQ8OhbPXqiQAHjDlZCfBdeGYVTcu/36RzdfU/Pm5Cd2/OCp/ZNWvn9B86cV9243rIHc7slHVrt2RBwJEQYEXvdfYQV2sUBCkJAobhLyY4Fw0bRHmZv5166aSaO7L+1OlSAh0pyqqF7Imd0W4WYN94jgCEc0A+HH4GV+QJ/UMZAjo+ico03iuD36gZlG01jtIilIKNPW9tjyQ7nDHTsem9ZsbU4JZdrazOGfAQkVh5uEDC8LBJMpzdW8zRzLdadcx3LsZyHy1qCfhdwehYi/EbdXrj9jKJE8ZIssKgTVuZof8EqzHeDZIdDHfVop2NpFw5JQx47HCr3NoY0OCR1c3kw+NUFCxeAhIcPLAsEwjAtqpi/e/qhzu6Bm+mj39q6GSYPbL+1u4HdEXhGk/kdBeYfSNF0ubQbiEGchOY0jtptrfsCtp3csN0fW1KeFLY2zXRQMCdkkYRvIbVzeXOisbAmANx4ScrdAMLmgZjpvMwyjq2bS4PZLu2q4EiJuEFufUNr7rqlP70Sqh3lfVzgnytihCuFKyJeVAq9dOYqVUHPTAvvEHSRUDG4S8mOBsOePv3TfzLFc12LeWI77zEP8wcd0AjULQZSX0LREYddhfsATrZHWirDgIdviNpBj2CE4ZlA4Vgr2Ysl20XgN5EzZ0AO5TFsbMdKDhIpCdEZu5/zrvnz5Ad62c/51o93b31s8aXDLD95bbO+IHM8vjI9q6yGG+YURnZTxrGSLPmU/zrs9yhctIaqatp6EYYfAarKZ22alQH+CuETVsqcTDi7PzyUs+GAPc0bOnG9g9VrAFdHvhdJVl3+2/Ffm9in9y6fLf5WuutwwDJ6EQiCwQFLFcGkXZ0auGCChYhBdnbAleaG5/T154Zbp+S154ZbpuSOGYby3eJK5BVHhYohrALVru6zVCSN7FpSgBKxOKJbYLjMlp6DjhK925YZtJXVBoEhiKyEAwgESAkAISAgAISAhAISAhAAQAhICQAhICAAhIuedUOrXpXQAEQBBoYB3QnFAQkAtFPBOKI6iJBTXFT5AIRTwTigOSAiohVzvBHdnAqb/Ac+EwBmqQFsj2CL73ILIASgCud4JXs4EDJ8AvgkBx3XAHhGLngkEilzvBM+ANqdPAC+COr/Dcx2gfRlKe40dAE7keid4x4Q6fAI4EvJ0HWAYEEBIIADkeif4CKu2+wRwTAg8XQeIgZzDQQGA0pHpneDTmYD2CXAzIXC4DhDWCEy7KwgICBMB74S4+h+AeKC8dwJGW0BtlF5mGlf/AxAnlJYQAOoDCQEgBCQEgBCQEABCQEIACAEJASAEJASAEFK9ExCMDaKPVO8ESAhEn8h5JwCgFpHzTgBALaR6J3j4GZDv4CYPJlIp0mIBAJlI9U5w8zOgo4QKdghpjQrrhoiAZKR6J7j4GdiDhFiOJLmo8GKaC0DQSPVOcPEzYEjIZkhiQEJABaR6J7j5GTgGcrkdSAiohVTvBA8/A/50AiQElEGqdwKCukH0kemdgBk1EANkLjOFLQKIAVipDYAQkBAAQkBCAAgBCQEgBCQEgBCQEABCQEIACCHVOwGA6CPVOwGA6APvBACEgHcCAEJI9U4wDCKiIZFK2d6XCisFEAGkeicQlgjUO7thpQCig1TvBFt0NxWaCisFEA2keidwJWQCKwUQAaR6J/AHcrBSAFFBqneCQc4bUNMJsFIAUUGqd4K9LA3TASByyPROMIyeVIKas4aCQOSQvcyU+AII+gFRRLaEAIg4kBAAQkBCAAgBCQEgBCQEgBCQEABCQEIACCFXQmmt8KJIbpwDACoTgIROZfvfb56zb/lv9i3/zfvNc05l+31nhYRA5AnAO2HP8hmnh3vOnR46d3ro274PDzTN8X32vIQKQEIgYoiu1D41fHhv/c/+tf+Rbz5Z9v0ndaMfPP6vdx76+IXKfzb++p+Nv+5a+7uxEy4lQEIg8oh6J3Q8fctg1wujhzZ+d/j17w6//t3Xm0Z7Nn7T89q3h7d8e3jL8OevvN98Gz83OZArRG9raVasAwBKIuqd8Paff6ofT7tsb//5p/yzsyVUEA4ZkgeAkoh6J7z1yLX60U3mdvJwa89bD7z/4sy9z9y895mb96Zu3pu6+X8bfr7v2eS+Z5P7nv0vR25eL2QlwLgOqI6od0L7w9foR1r0Iy0jH6/cvyp5/KNn9IG/6wPt+kC7PvimPrhVH9ymH0+PdK/b+eRNjtyQEIg8ot4Jmxf9RP+qOftB/a6nb852rdR71+m96/TeV/S+V/W+Vr1vvd6/IftJ0z+W/+fw4Y8cuTkDOcpOAQoCSiM6I/fa/f8+fOCRtxt+Ofx+rd7TqPc06j1N+lfN+ler9K+e0w+tHv7gL+n6m4e+/pCVm9MLaZhNAJFB9Huh1vuu2vb4z4b2P6QffEI/WKcfrNc/X6Z//hf98wb9iycz+/+0te4/MoeY+gEgDoiuTvjwb0+/ct/VGx+8dtN/X/f64uvfWHLD5iU3bF5ywxtLbthWN61z/SMnvxkIpKIAqAmWmQIgBCQEgBCQEABCQEIACAEJASAEJASAEJAQAEIEI6Fd6QbmFkjhAKhMMBJ6Z9vysfGztu2z9gVQEYucj7iWKuubLZ3hjKAsBCOhHe0rnBL6cuejB2OoIuI1RyXdovR6QEgo8gQjoW1bVupjZ83t9NgZfezs6bGzR95b+eXORz9rn5/e8j+BnCVQSgqjIF6ObO6WoICw3qIECYVEMBLa8sazJ/UzJ/UzV05fuHDp8ydPn1249Pkrpy88qZ89pZ9t3/xsIGcJlBIkFEwMLSQUM4KR0KbXVn1/6sz3p8aXrd505fSF3506c+X0hctWb/r+1JnvT515Y1MzP6s1LqJeFEmOl4iXRyZSKc3xMiJnSsKAoWCtRQ6+iMEY9Y5x2/iMLsft3ue/xJKuMDUKpFTMuw75euRT5nWc1ioSqXSuXbkD9ssFCYVBMBJq3fD86IkzoyfOjJ4YN8Vz5fSFoyfGzSNtbas5+TivK7a/QZW47+1PEcyUtAGD0ZPS8kkKJyTvX8e7kHlGDmwJ8bIzK0wUU6gC7zpQ50ikeuj3NNO6tDcLEgqJYCS09pUXs9+Nm5upn2WrN2W/GzOPrHv1BXY2201p7ZKf6YVPVtabidkpGYM0ez9EprFrg5Ii9bpkpoS42dmvUmZIiHcd7Kche18yEfN3SCgkgpHQX1taMqNj5mb1QpnRcfPImnVr2dlcJMS+h1gSYqSkb33yY51p0sDQANNalaMhbnZIaEIQjISaX3p1YGRsYGTMFM/AiG4KyTy4es06Tj6XgRz5lGCNTJx3JDMlt/cgHipcB3IOwTmraKa0ukJWdt8S4l0Hx/CPOR6EhOQSjIRSf91wdFg/NjxmzsgdHR4zZ+SOZvWjw3rTi63cnIUBFv0Y7Rh48e5IVkqGDVDuHJpm/SV31Hs6ga4wM6HLdIIvCXGuQ14xhEatDwFISBWCkdDTz23sy+h9Gb03o/cN6X2Z031Dp3szeu/Q6d6MvvL5Nl+lhDXdqzq4DpEiGAk1rHr98PHT5nbk+Okjx08fPq5buytWbeTk60klqFndiXrn4DpEmGAktKxp87LGzfWNm5c1ba5vMn/+zTy4rHHzk02vc3MSw7AJfd/gOkQWBDsAIAQkBIAQ/w82jPYG5w2j9AAAAABJRU5ErkJggg==" alt="" />

3.单表操作    一对多    一对一

1)/testMybatis/src/cn/edu/cqupt/mybatis/mapper/UserMapper.xml
  /testMybatis/src/cn/edu/cqupt/mybatis/mapper/UserMapper.java

package cn.edu.cqupt.mybatis.mapper;

import cn.edu.cqupt.mybatis.po.User;
import cn.edu.cqupt.mybatis.po.UserClasses;
import cn.edu.cqupt.mybatis.po.UserExample; import java.util.List; import org.apache.ibatis.annotations.Param; public interface UserMapper {
int countByExample(UserExample example); int deleteByExample(UserExample example); int deleteByPrimaryKey(Integer id); int insert(User record); int insertSelective(User record); List<User> selectByExample(UserExample example); User selectByPrimaryKey(Integer id); int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example); int updateByExample(@Param("record") User record, @Param("example") UserExample example); int updateByPrimaryKeySelective(User record); int updateByPrimaryKey(User record); UserClasses selectUserByClasses(Integer classesid); User selectUserClass2(Integer classesid); User selectUserByAlias(Integer userid);
}
<?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 namespace="cn.edu.cqupt.mybatis.mapper.UserMapper" >
<resultMap id="BaseResultMap" type="cn.edu.cqupt.mybatis.po.User" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="gender" property="gender" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="birthday" property="birthday" jdbcType="DATE" />
</resultMap>
<sql id="Example_Where_Clause" >
<where >
<foreach collection="oredCriteria" item="criteria" separator="or" >
<if test="criteria.valid" >
<trim prefix="(" suffix=")" prefixOverrides="and" >
<foreach collection="criteria.criteria" item="criterion" >
<choose >
<when test="criterion.noValue" >
and ${criterion.condition}
</when>
<when test="criterion.singleValue" >
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue" >
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue" >
and ${criterion.condition}
<foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause" >
<where >
<foreach collection="example.oredCriteria" item="criteria" separator="or" >
<if test="criteria.valid" >
<trim prefix="(" suffix=")" prefixOverrides="and" >
<foreach collection="criteria.criteria" item="criterion" >
<choose >
<when test="criterion.noValue" >
and ${criterion.condition}
</when>
<when test="criterion.singleValue" >
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue" >
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue" >
and ${criterion.condition}
<foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List" >
id, gender, name, birthday
</sql>
<select id="selectByExample" resultMap="BaseResultMap" parameterType="cn.edu.cqupt.mybatis.po.UserExample" >
select
<if test="distinct" >
distinct
</if>
<include refid="Base_Column_List" />
from user
<if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null" >
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from user
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from user
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByExample" parameterType="cn.edu.cqupt.mybatis.po.UserExample" >
delete from user
<if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="cn.edu.cqupt.mybatis.po.User" >
insert into user (id, gender, name,
birthday)
values (#{id,jdbcType=INTEGER}, #{gender,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
#{birthday,jdbcType=DATE})
</insert>
<insert id="insertSelective" parameterType="cn.edu.cqupt.mybatis.po.User" >
insert into user
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="gender != null" >
gender,
</if>
<if test="name != null" >
name,
</if>
<if test="birthday != null" >
birthday,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="gender != null" >
#{gender,jdbcType=VARCHAR},
</if>
<if test="name != null" >
#{name,jdbcType=VARCHAR},
</if>
<if test="birthday != null" >
#{birthday,jdbcType=DATE},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="cn.edu.cqupt.mybatis.po.UserExample" resultType="java.lang.Integer" >
select count(*) from user
<if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map" >
update user
<set >
<if test="record.id != null" >
id = #{record.id,jdbcType=INTEGER},
</if>
<if test="record.gender != null" >
gender = #{record.gender,jdbcType=VARCHAR},
</if>
<if test="record.name != null" >
name = #{record.name,jdbcType=VARCHAR},
</if>
<if test="record.birthday != null" >
birthday = #{record.birthday,jdbcType=DATE},
</if>
</set>
<if test="_parameter != null" >
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map" >
update user
set id = #{record.id,jdbcType=INTEGER},
gender = #{record.gender,jdbcType=VARCHAR},
name = #{record.name,jdbcType=VARCHAR},
birthday = #{record.birthday,jdbcType=DATE}
<if test="_parameter != null" >
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="cn.edu.cqupt.mybatis.po.User" >
update user
<set >
<if test="gender != null" >
gender = #{gender,jdbcType=VARCHAR},
</if>
<if test="name != null" >
name = #{name,jdbcType=VARCHAR},
</if>
<if test="birthday != null" >
birthday = #{birthday,jdbcType=DATE},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="cn.edu.cqupt.mybatis.po.User" >
update user
set gender = #{gender,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},
birthday = #{birthday,jdbcType=DATE}
where id = #{id,jdbcType=INTEGER}
</update>
<resultMap type="cn.edu.cqupt.mybatis.po.UserClasses" id="user_classes_resultmap">
<id column="id" property="id"/>
<result column="gender" property="gender"/>
<result column="name" property="name"/>
<result column="birthday" property="birthday"/> <association property="classes" javaType="cn.edu.cqupt.mybatis.po.Classes">
<id column="classesid" property="id"/>
<result column="cname" property="cname"/>
</association>
</resultMap>
<select id="selectUserByClasses" parameterType="java.lang.Integer" resultMap="user_classes_resultmap">
select user.*,classes.cname from user
left join classes on user.classesId=classes.id
where user.classesId=#{classedid}
</select>
<resultMap type="cn.edu.cqupt.mybatis.po.User" id="user_class_resultMap2">
<id column="id" property="id"/>
<result column="gender" property="gender"/>
<result column="name" property="name"/>
<result column="birthday" property="birthday"/>
<result column="classesid" property="classesId"/> </resultMap> <select id="selectUserClass2" parameterType="java.lang.Integer" resultMap="user_class_resultMap2">
select id,name,gender,birthday,classesid from user
where classesid=#{classedid}
</select> <resultMap type="cn.edu.cqupt.mybatis.po.User" id="user_alias_resultMap">
<id column="id" property="id"/>
<result column="gender" property="gender"/>
<result column="name" property="name"/>
<result column="birthday" property="birthday"/>
<collection property="aliasList" ofType="cn.edu.cqupt.mybatis.po.Alias">
<id column="aid" property="id"/>
<result column="aname" property="name"/>
</collection>
</resultMap>
<select id="selectUserByAlias" parameterType="java.lang.Integer" resultMap="user_alias_resultMap">
select u.*,a.id aid,a.name aname from user u
left join alias a on a.userid=u.id
where u.id=#{userid}
</select> </mapper>

2)配置  /testMybatis/src/config/SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <!-- 加载属性文件 -->
<properties resource="config/db.properties">
<!--properties中还可以配置一些属性名和属性值 -->
<!-- <property name="jdbc.driver" value=""/> -->
</properties>
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,事务控制由mybatis-->
<transactionManager type="JDBC" />
<!-- 数据库连接池,由mybatis管理-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<!-- 加载 映射文件 -->
<mappers>
<package name="cn.edu.cqupt.mybatis.mapper"/>
</mappers>
</configuration>

3)测试

package cn.edu.cqupt.mybatis.test;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test; import cn.edu.cqupt.mybatis.mapper.UserMapper;
import cn.edu.cqupt.mybatis.po.User;
import cn.edu.cqupt.mybatis.po.UserClasses;
import cn.edu.cqupt.mybatis.po.UserExample; public class UserMapperTest { private SqlSessionFactory sqlSessionFactory; @Before
public void setUp() throws Exception {
String resource = "config/SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
} @Test
public void testSelectByPrimaryKey() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.selectByPrimaryKey(6); System.out.println(user); }
@Test
public void testSelectByExample()throws Exception{
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
UserExample example = new UserExample();
example.createCriteria().andNameLike("cherry");
List<User> lists = userMapper.selectByExample(example);
System.out.println(lists.size()); }
@Test
public void testUpdateByPrimaryKey()throws Exception{
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.selectByPrimaryKey(3);
user.setName("aa");
user.setBirthday(new Date());
userMapper.updateByPrimaryKey(user);
sqlSession.commit();
sqlSession.close();
} @Test
public void testInsert()throws Exception{
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setName("lll");
user.setGender("2");
user.setBirthday(new Date());
int count = userMapper.insert(user);
sqlSession.commit();
sqlSession.close();
}
@Test
public void selectUserByClasses(){
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
UserClasses uc=userMapper.selectUserByClasses(new Integer(1));
System.out.println(uc.toString()); } @Test
public void selectUserClass2(){
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.selectUserClass2(new Integer(1)); }
@Test
public void selectUserByAlias(){
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.selectUserByAlias(new Integer(2));
System.out.println(user.getAliasList().size());
} }

mybatis 高级映射 简单例子的更多相关文章

  1. 【Mybatis高级映射】一对一映射、一对多映射、多对多映射

    前言 当我们学习heribnate的时候,也就是SSH框架的网上商城的时候,我们就学习过它对应的高级映射,一对一映射,一对多映射,多对多映射.对于SSM的Mybatis来说,肯定也是差不多的.既然开了 ...

  2. mybatis 高级映射和spring整合之高级映射(4)

    mybatis 高级映射和spring整合之高级映射 ----------------学习结构-------------------- 0.0 对订单商品数据模型进行分析 1.0 高级映射 1.1 一 ...

  3. mybatis高级映射(一对一,一对多)

    mybatis高级映射 一对一关联映射 需求:查询订单信息,关联查询用户信息(一个订单对应一个用户) (1)通过resultType实现 sql语句: select orders.* , USER.u ...

  4. mybatis 高级映射和spring整合之逆向工程(7)

    mybatis 高级映射和spring整合之逆向工程(7) 4.0 逆向工程 4.1 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行 ...

  5. mybatis 高级映射和spring整合之与Spring整合(6)

    mybatis 高级映射和spring整合之mybatis与Spring整合 3.0 mybatis和spring整合(掌握) 3.1 整合思路 需求spring通过单例方式管理SqlSessionF ...

  6. mybatis 高级映射和spring整合之查询缓存(5)

    mybatis 高级映射和spring整合之查询缓存(5) 2.0 查询缓存 2.0.1 什么是查询缓存 mybatis提供缓存,用于减轻数据压力,提高数据库性能. mybatis提供一级缓存和二级缓 ...

  7. 六 mybatis高级映射(一对一,一对多,多对多)

    1  订单商品数据模型 以订单商品数据为模型,来对mybaits高级关系映射进行学习.

  8. (转)Mybatis高级映射、动态SQL及获得自增主键

    原文:http://www.cnblogs.com/edwinchen/p/4105278.html?utm_source=tuicool&utm_medium=referral 一.动态SQ ...

  9. Mybatis高级映射、动态SQL及获得自增主键

    一.动态SQL 相信大家在用mybatis操作数据库时时都会碰到一个问题,假如现在我们有一个关于作者的list authorList,需要根据authorList里已有的作者信息在数据库中查询相应作者 ...

随机推荐

  1. ExtJS清除表格缓存

    背景 在使用ExtJS时遇到不少坑,如果不影响使用也无所谓,但是有些不能忍的,比如表格数据缓存问题.如果第一次打开页面查询出一些数据展示在表格中:第二次打开,即使不查询也会有数据,这是缓存的数据. 我 ...

  2. CodeForces 838A Binary Blocks(前缀和)题解

    题意:给你个n*m的矩阵,要求你找到一个k,k > 1,使得矩阵可以分为很多k * k的小正方形,然后进行操作把每个小正方形都变为0或1,问你怎样使操作数最小. 思路:随便暴力不可取,显然你每次 ...

  3. 【bzoj2721】[Violet 5]樱花

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=2721 好久没做数学题了,感觉有些思想僵化,走火入魔了. 这道题就是求方程$ \frac ...

  4. js二进制转换十进制

    var a = 1010;alert(a.toString(2)); //转成二进制 alert(parseInt( "101110100 ",2)) ;//转成十进制 null

  5. Android -- Activity的生命周期,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance

    1. 示例图 . 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环:  Activity的完整生命周期自第一次调用onCreate()开始,直至调 ...

  6. C# typeof 与GetType()的区别

    C#中Type类的介绍:https://msdn.microsoft.com/zh-cn/library/system.type(VS.80).aspx C#中任何对象都具有GetType()方法,它 ...

  7. python 矩阵转置

    arrA=[[,,,],[,,,],[,,,],[,,,]] N= #声明4x4数组arr arrB=[[None] * N for row in range(N)] print('[原设置的矩阵内容 ...

  8. 查看nginx版本和安装的模块

    查看nginx版本 # nginx -v nginx version: nginx/1.12.2 查看nginx配置了哪些模块 # nginx -V nginx version: nginx/1.12 ...

  9. 使用 if 表达式

    由于 if 本质上是一个原函数,它的返回值就是满足条件分支表达式的值,因此,if 表达式也可以用作内联函数.我们以 check_positive( )为例进行说明.尽管条件表达式中不另写 return ...

  10. curl使用记录

    $header = array("Connection: Keep-Alive", "Accept: text/html,application/xhtml+xml,ap ...