一对一:汽车表Car对用户表User是一对一关系
-
pojo
public class Car implements Serializable { private Integer id; private String name; private Integer uId; private User user; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getuId() { return uId; } public void setuId(Integer uId) { this.uId = uId; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String toString() { return "Car{" + "id=" + id + ", name='" + name + '\'' + ", uId=" + uId + '}'; } }
public class User implements Serializable { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + '}'; }
-
sql语句
-
Mapper.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"> <mapper namespace="com.harbin.dao.CarMapper"> <resultMap id="CarResultMap" type="car"> <id property="id" column="id"></id> <result property="name" column="name"></result> <result property="uId" column="uId"></result> <!--一对一关系:property值是类Car中的user字段 javaType是字段对象的类型--> <association property="user" javaType="user"> <id property="id" column="uId"></id> <result property="name" column="uname"></result> </association> </resultMap> <!--List<Car> find()--> <select id="find" resultMap="CarResultMap"> select car.*,user.name uname from user,car where user.id = car.uId </select> </mapper>
多对一:用户表User对汽车表Car是一对多关系
-
pojo
public class User implements Serializable { private Integer id; private String name; List<Car> cars; public List<Car> getCars() { return cars; } public void setCars(List<Car> cars) { this.cars = cars; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + '}'; } }
public class Car implements Serializable { private Integer id; private String name; private Integer uId; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getuId() { return uId; } public void setuId(Integer uId) { this.uId = uId; } @Override public String toString() { return "Car{" + "id=" + id + ", name='" + name + '\'' + ", uId=" + uId + '}'; } }
-
sql语句
-
Mapper.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"> <mapper namespace="com.harbin.dao.UserMapper"> <resultMap id="UserResultMap" type="user"> <id property="id" column="uId"></id> <result property="name" column="uname"></result> <!--一对多关系:property值是类User中的cars字段 ofType是集合中元素的类型--> <collection property="cars" ofType="car"> <id property="id" column="id"></id> <result property="name" column="name"></result> <result property="uId" column="uId"></result> </collection> </resultMap> <!--List<User> find()--> <select id="find" resultMap="UserResultMap"> select car.*,user.name uname from user LEFT JOIN car on user.id = car.uid </select> </mapper>