MyBatis2---链表查询-动态sql语句-模糊查询-分页

本文介绍了在MyBatis中如何进行链表查询,包括多对一和一对多的情况,并探讨了动态SQL语句的使用,如if标签、choose when otherwise和foreach。同时,详细阐述了PageHelper分页插件的安装和使用,以及模糊查询的方法。
摘要由CSDN通过智能技术生成

1. 链表查询

1.1 多对一

(1) 根据订单id查询订单信息以及该订单对应的用户信息。

第一种方式 通过链表查询。

<resultMap id="My01" type="com.aaa.entity.Order" >
      <!--id必写-->
      <id property="id" column="order_id"/>
      <result property="no" column="order_no"/>
      <result property="price" column="order_price"/>
      <result property="num" column="num"/>
    <!--association:表示多对一
            property:表示对象属性名
            javaType:表示该对象所属的类型
            autoMapping必须写
    -->
      <association property="user" javaType="com.aaa.entity.User" autoMapping="true">
          <!--User和User表的对应关系-->
           <id property="id" column="id"/>
      </association>
</resultMap>
<!--注意:使用了resultMap不能在使用resultType-->
<select id="selectById" resultMap="My01" >
    select * from orders o join users u on o.uid=u.id where o.order_id=#{id}
</select>

第二种方式 通过嵌套查询。----两次查询。

 

1.2 一对多 

1.从一的一方查询多的一方。

比如: 班级--1---n-->学生.

CREATE TABLE class(
c_id INT PRIMARY KEY AUTO_INCREMENT,
c_name VARCHAR(20),
);
INSERT INTO class(c_name) VALUES('QY145');
INSERT INTO class(c_name) VALUES('QY143');
INSERT INTO class(c_name) VALUES('QY142');
CREATE TABLE student(
s_id INT PRIMARY KEY AUTO_INCREMENT,
s_name VARCHAR(20),
class_id INT
);
INSERT INTO student(s_name, class_id) VALUES('xs_A', 1);
INSERT INTO student(s_name, class_id) VALUES('xs_B', 1);
INSERT INTO student(s_name, class_id) VALUES('xs_C', 2);
INSERT INTO student(s_name, class_id) VALUES('xs_D', 2);
INSERT INTO student(s_name, class_id) VALUES('xs_E', 3);
INSERT INTO student(s_name, class_id) VALUES('xs_F
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值