mybatis多表查询left
时间: 2023-10-10 09:11:11 浏览: 131
引用[1]:所以想要实现一对一多表查询,需要设置多表查询SQL语句,我们使用左外连接进行多表查询: <select id="getArticleById" resultMap="BaseMap"> select a.*, u.* from articleinfo as a left join userinfo as u on a.uid=u.id where a.id=#{id}; </select> 。 引用[2]:3.测试类: package com.ffyc.mybatisdemo.test; import com.ffyc.mybatisdemo.dao.GradeDao; import com.ffyc.mybatisdemo.dao.StudentDao; import com.ffyc.mybatisdemo.model.Grade; import com.ffyc.mybatisdemo.model.Student; import com.ffyc.mybatisdemo.util.MybatisUtil; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; /* 多表查询 1对多 */ public class TestGrade { @Test public void findGrade() { SqlSession sqlSession = MybatisUtil.getSqlSession(); GradeDao GradeDao = sqlSession.getMapper(GradeDao.class); List<Grade> grades = GradeDao.findGradelist(); System.out.println(grades); sqlSession.close(); } } 多对一结果查询 。 引用[3]:3.测试类: package com.ffyc.mybatisdemo.test; import com.ffyc.mybatisdemo.dao.AdminDao; import com.ffyc.mybatisdemo.dao.StudentDao; import com.ffyc.mybatisdemo.dao.StudentDao2; import com.ffyc.mybatisdemo.model.Admin; import com.ffyc.mybatisdemo.model.Student; import com.ffyc.mybatisdemo.util.MybatisUtil; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.ArrayList; import java.util.List; /* 多表查询 多对1 */ public class TestStudent { @Test //单独使用resultMap处理 public void findStudentlist() { SqlSession sqlSession = MybatisUtil.getSqlSession(); StudentDao studentDao = sqlSession.getMapper(StudentDao.class); Student student = new Student(); List<Student> students = studentDao.findStudentlist(student); System.out.println(students); sqlSession.close(); } } 。 问题:mybatis多表查询left
回答: 在Mybatis中进行多表查询时,可以使用左外连接来实现。在SQL语句中使用左外连接关键字"left join",并指定连接的两个表以及连接条件。例如,可以使用以下SQL语句进行多表查询:<select id="getArticleById" resultMap="BaseMap"> select a.*, u.* from articleinfo as a left join userinfo as u on a.uid=u.id where a.id=#{id}; </select> [1]。此外,还可以使用Mybatis的resultMap来处理多对一或一对多的结果查询。通过定义resultMap,可以将查询结果映射到相应的实体类中。例如,在测试类TestGrade中,使用GradeDao的findGradelist方法进行多对一的结果查询,并将结果打印出来[2]。在测试类TestStudent中,使用StudentDao的findStudentlist方法进行多表查询多对一的结果查询,并将结果打印出来[3]。
阅读全文