DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`date` datetime NULL DEFAULT NULL,
`money` float(255,0) NULL DEFAULT NULL,
PRIMARY KEY (`id`, `uid`) USING BTREE,
INDEX `a_uid`(`uid`) USING BTREE,
CONSTRAINT `a_uid` FOREIGN KEY (`uid`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT =5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;-------------------------------- Records of account
------------------------------
INSERT INTO `account` VALUES (1,1,'2020-04-27 16:25:57',100);
INSERT INTO `account` VALUES (2,1,'2020-04-27 16:26:02',1000);
INSERT INTO `account` VALUES (3,2,'2020-04-27 16:26:05',200);
INSERT INTO `account` VALUES (4,2,'2020-04-27 16:26:08',2000);
创建user表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT =6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;-------------------------------- Records of user
------------------------------
INSERT INTO `user` VALUES (1,'aaa');
INSERT INTO `user` VALUES (2,'bbb');
INSERT INTO `user` VALUES (3,'ccc');
INSERT INTO `user` VALUES (4,'ddd');
INSERT INTO `user` VALUES (5,'eee');
实体类
账户类Acount.java
package com.cenzn.domain;import java.util.Date;publicclassAccount{private Integer id;private Integer uid;private Date date;private Float money;//从表实体应该包含一个主表实体的对象引用private User user;public Integer getId(){return id;}publicvoidsetId(Integer id){this.id = id;}public Integer getUid(){return uid;}publicvoidsetUid(Integer uid){this.uid = uid;}public Date getDate(){return date;}publicvoidsetDate(Date date){this.date = date;}public Float getMoney(){return money;}publicvoidsetMoney(Float money){this.money = money;}public User getUser(){return user;}publicvoidsetUser(User user){this.user = user;}@Overridepublic String toString(){return"Account{"+"id="+ id +", uid="+ uid +", date="+ date +", money="+ money +'}';}}
<?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"><mappernamespace="com.cenzn.dao.IAccountDao"><!-- id:resultMap标签的标识 type:返回值的全限定类名--><resultMapid="AccountMap"type="com.cenzn.domain.Account"><!-- property:需要映射到JavaBean的属性名称--><!-- column 数据表的列名或者标签别名--><idcolumn="aid"property="id"/><resultcolumn="uid"property="uid"/><resultcolumn="date"property="date"/><resultcolumn="money"property="money"/><associationproperty="user"column="uid"><idcolumn="id"property="id"/><resultcolumn="username"property="username"/></association></resultMap><selectid="findAccountAll"resultMap="AccountMap">
select u.* ,a.id as aid ,a.uid,a.date ,a.money from account a ,user u where a.uid = u.id
</select></mapper>
用户类的映射xml文件IUser.xml
<?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"><mappernamespace="com.cenzn.dao.IUserDao"><!-- id:resultMap标签的标识 type:返回值的全限定类名--><resultMapid="UserMap"type="com.cenzn.domain.User"><!-- property:需要映射到JavaBean的属性名称--><!-- column 数据表的列名或者标签别名--><idcolumn="id"property="id"/><resultcolumn="username"property="username"/><!-- collection 是用于建立一对多中集合属性的对应关系--><!-- ofType 用于指定集合元素的数据类型--><collectionproperty="accounts"ofType="com.cenzn.domain.Account"><idcolumn="aid"property="id"/><resultcolumn="uid"property="uid"/><resultcolumn="date"property="date"/><resultcolumn="money"property="money"/></collection></resultMap><selectid="findUserAll"resultMap="UserMap">
select * from user u left outer join account a on a.uid = u.id
</select></mapper>
mybatis的配置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><environmentsdefault="mysql"><environmentid="mysql"><transactionManagertype="JDBC"></transactionManager><dataSourcetype="POOLED"><propertyname="driver"value="com.mysql.jdbc.Driver"/><propertyname="url"value="jdbc:mysql:///mybatis"/><propertyname="username"value="root"/><propertyname="password"value="root"/></dataSource></environment></environments><mappers><mapperclass="com.cenzn.dao.IAccountDao"/><mapperclass="com.cenzn.dao.IUserDao"/></mappers></configuration>