1、首先创建2张表:students 和grades
create table grades( gid int(5) primary key, gname varchar(10) ); create table students( sid int(5) primary key, sname varchar(10), sgid int(5), constraint sgid_fk foreign key(sgid) references grades(gid) ); insert into grades(gid,gname) values(1,'java'); insert into student(sid,sname,sgid) values(1,'哈哈',1); insert into student(sid,sname,sgid) values(2,'呵呵',1); select * from grades; select * from student;
2、创建POJO:Student.java 和Grade.java
@Data public class Student { private Integer id; private String name; private Grade grade; }
@Data public class Grade { private Integer id; private String name; }
3、创建StudentMapper接口查询Java学科有哪些学生信息
import com.longteng.diamond.domain.one2many.Student; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface StudentMapper { /* 查询java学科有哪些学生信息 */ public List<Student> findBySubject(String subject); }
4、创建StudentGradeMapper.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.longteng.diamond.dao.one2many.StudentMapper"> <resultMap id="myStudent" type="com.longteng.diamond.domain.one2many.Student"> <id property="id" column="sid" jdbcType="INTEGER"></id> <result property="name" column="sname" jdbcType="VARCHAR"></result> <collection property="grade" ofType="com.longteng.diamond.domain.one2many.Grade"> <id property="id" column="gid"></id> <result property="name" column="gname"></result> </collection> </resultMap>
/* 查询java学科有哪些学生信息 */
<select id="findBySubject" parameterType="java.lang.String" resultMap="myStudent">
select s.sid,s.sname ,g.gid,g.gname from student s inner join grades g on s.sgid = g.gid where g.gname=#{0}
</select>
</mapper>
5、创建Controller
import com.longteng.diamond.dao.one2many.StudentMapper; import com.longteng.diamond.domain.one2many.Student; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class StudentCardController { @Autowired StudentMapper studentMapper; /* 查询java学科有哪些学生信息 */ @RequestMapping("/findBySubject") public String test1(){ List<Student> studentList = studentMapper.findBySubject("java"); StringBuffer stringBuffer = new StringBuffer(); if(!CollectionUtils.isEmpty(studentList)){ for(Student student:studentList){ stringBuffer.append(student.toString()); } } return stringBuffer.toString(); } }
6、运行接口http://localhost/findBySubject获取测试结果
Student(id=1, name=哈哈, grade=Grade(id=1, name=java))Student(id=2, name=呵呵, grade=Grade(id=1, name=java))