Mybatis--sql多对一的处理

  我们先来看看下图所示的例子,学生和老师之间就是一种多对一的关系。
在这里插入图片描述

  • 对于学生这边而言,多个学生关联一个老师【多对一】;这是关联
  • 对于老师这边而言,一个老师包含多个学生【一对多】;这是集合
  1. 测试多对一实例
    数据库表如下图所示:


    步骤一:构造学生实体类Student.java
package com.hpf.bean;

import lombok.Data;
@Data
public class Student {
    private int id;
    private String stuName;
    //每个学生都要关联一个老师
    private Teacher teacher;
}

步骤二:编写StudentMapper.java接口类

package com.hpf.dao;

import com.hpf.bean.Student;
import java.util.List;
public interface StudentMapper {
    //方式一:查询所有学生的信息,并且包含学生对应的老师的信息
    public List<Student> getStudent();
    //方式二:联表查询
    public List<Student> getStudent2();
}

步骤三:编写xml映射配置文件(方式一)

<mapper namespace="com.hpf.dao.StudentMapper">
    <select id="getStudent" resultMap="stu-tea">
        select * from student;
    </select>
    <resultMap id="stu-tea" type="student">
        <result property="id" column="id"/>
        <result property="stuName" column="stu_name"/>
        <!--对于复杂的属性,我们需要单独处理,处理的对象用association-->
        <association property="teacher" column="tea_id" javaType="Teacher" select="getTeacherById"/>
    </resultMap>
    <select id="getTeacherById" resultType="Teacher">
        select * from teacher where id=#{id};
    </select>
</mapper>

思路:
1.查询所有学生信息;
2.根据查询的学生id,寻找对应的老师信息。
这是sql语句的子查询方式,也就是嵌套查询。

编写xml映射配置文件(方式二)

<mapper namespace="com.hpf.dao.StudentMapper">
    <select id="getStudent2" resultMap="stu-tea2">
        select s.id,stu_name,tea_name
        from student s,teacher t
        where s.tea_id = t.id
    </select>
    <resultMap id="stu-tea2" type="Student">
        <result property="id" column="id"/>
        <result property="stuName" column="stu_name"/>
        <association property="teacher" javaType="Teacher">
            <result property="id" column="id"/>
            <result property="teaName" column="tea_name"/>
        </association>
    </resultMap>
</mapper>

思路:
sql语句的联表查询。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在使用Spring Boot与MyBatis-Plus连接SQL Server时,可能会遇到以下问题: 1. 驱动问题:首先需要引入SQL Server的JDBC驱动,可以在pom.xml文件中添加依赖。常用的驱动有`com.microsoft.sqlserver.jdbc.SQLServerDriver`和`net.sourceforge.jtds.jdbc.Driver`。确保驱动版本与SQL Server版本兼容。 2. 数据库连接配置:在application.properties或application.yml文件中,需配置SQL Server的连接信息,包括数据库地址、端口、用户名、密码等。注意要正确配置驱动名称、连接URL以及字符集等。 3. 数据库版本兼容性:确保使用的SQL Server版本与MyBatis-Plus和JDBC驱动兼容。不同版本的SQL Server可能在SQL语法、特性或驱动接口上有所区别。 4. 数据库表映射:在使用MyBatis-Plus进行ORM映射时,需要在实体类中使用注解配置数据表名、字段名和主键等信息。同时,要确认实体类和数据表的字段类型、长度、精度等匹配。 5. 数据库连接池配置:可以使用Spring Boot提供的连接池技术,如HikariCP或Tomcat连接池。根据并发需求和性能要求,配置合适的连接池大小、最大等待时间和最大空闲时间等参数。 6. 异常处理与日志记录:在连接SQL Server过程中,可能会出现连接异常、语法错误等问题。需要适当处理这些异常,并进行日志记录以便排查和分析问题。 通过解决上述问题,我们可以成功连接SQL Server数据库,并使用MyBatis-Plus进行数据操作和ORM映射。持续的测试和调试可以保证系统的稳定性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值