mybatis使用教程

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;
    }

}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值