1.一对一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.hou.test.mapper.UserMapper">
<resultMap type="com.hou.test.po.User" id="UserInfo">
<id column="id" property="id" />
<result column="user_name" property="userName" />
<result column="password" property="password" />
<result column="true_name" property="trueName" />
<result column="telephone" property="telephone" />
<result column="address" property="address" />
</resultMap>
<select id="getUser" resultMap="UserInfo">
select * from user u where u.id =
#{id}
</select>
<update id="updateUserById">
update User u set
u.user_name=#{userName},u.telephone=#{telephone},u.address =
#{address} where u.id = #{id}
</update>
<insert id="addUser" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID()
</selectKey>
insert into
User(user_name,telephone,address,true_name,password)
values(#{userName},#{telephone},#{address},#{trueName},#{password})
</insert>
<delete id="deleteUserById">
delete from user where id = #{id}
</delete>
</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.hou.test.mapper.StudentMapper">
<resultMap type="com.hou.test.po.Student" id="studentInfo">
<id column="id" property="id"></id>
<result column="sname" property="sname"/>
<!--每个学生对应一个班级-->
<association property="classes" javaType="com.hou.test.po.Classes">
<id column="cid" property="cid"/>
<result column="cname" property="cname"/>
</association>
</resultMap>
<select id="getStudent" resultMap="studentInfo">
select * from classes c,student s where s.c_id=c.id and s.id=#{id}
</select>
</mapper>
一对多配置:
<?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.hou.test.mapper.ClassesMapper">
<resultMap type="com.hou.test.po.Classes" id="classesInfo">
<id column="cid" property="id" />
<result column="cname" property="cname" />
<!--多对一 一个班级对应多个学生-->
<collection property="students" ofType="com.hou.test.po.Student" column="id" >
<id column="sid" property="id"></id>
<result column="sname" property="sname"/>
</collection>
</resultMap>
<select id="getClasses" resultMap="classesInfo">
select *,s.id sid,c.id cid from classes c,student s where s.c_id=c.id and c.id=#{id}
</select>
<select id="getAllClasses" resultMap="classesInfo">
select * from classes
</select>
</mapper>
多对多
多对多我们在数据库中需要做中间表,java中直接用两个List就ok了以下是配置文件
<?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.hou.test.mapper.OrderMapper">
<resultMap type="com.hou.test.po.Order" id="orderInfo">
<id column="oid" property="id" />
<result column="order_name" property="orderName" />
<collection property="person" ofType="com.hou.test.po.Person">
<id column="pid" property="id"></id>
<result column="person_name" property="personName"/>
</collection>
</resultMap>
<select id="getOrder" resultMap="orderInfo">
select * ,o.id oid ,p.id pid from `order` o , person p , person_order pr where o.id = pr.order_id and p.id = pr.p_id and o.id = #{id}
</select>
</mapper>
多对多对应的两个表类为
Order类:
package com.hou.test.po;
import java.util.List;
public class Order {
private long id;
private String orderName;
private long personId;
private List<Person> person;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
public long getPersonId() {
return personId;
}
public void setPersonId(long personId) {
this.personId = personId;
}
public List<Person> getPerson() {
return person;
}
public void setPerson(List<Person> person) {
this.person = person;
}
}
Person类:
package com.hou.test.po;
import java.util.List;
public class Person {
private long id;
private String personName;
private long orderId;
private List<Order> order;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public long getOrderId() {
return orderId;
}
public void setOrderId(long orderId) {
this.orderId = orderId;
}
public List<Order> getOrder() {
return order;
}
public void setOrder(List<Order> order) {
this.order = order;
}
}