首先新建两个类,分别为Major(专业类)和Sclass(班级类),一个专业可以有多个班级,所以Major与Sclass的关系应为一对多,反过来一个班级只能对应一个专业,所以Sclass与Major的关系为一对一。
一、实体类信息如下
public class Major {
private int id;
private String majorName;
private List<Sclass> sclassList;
public Major() {
}
public Major(String majorName) {
this.majorName = majorName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getMajorName() {
return majorName;
}
public void setMajorName(String majorName) {
this.majorName = majorName;
}
public List<Sclass> getSclassList() {
return sclassList;
}
public void setSclassList(List<Sclass> sclassList) {
this.sclassList = sclassList;
}
}
package com.csdn.domain;
public class Sclass {
private int id;
private int majorId;
private String sclassName;
private Major major;
public Sclass() {
}
public Sclass(int majorId, String sclassName) {
this.majorId = majorId;
this.sclassName = sclassName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getMajorId() {
return majorId;
}
public void setMajorId(int majorId) {
this.majorId = majorId;
}
public String getSclassName() {
return sclassName;
}
public void setSclassName(String sclassName) {
this.sclassName = sclassName;
}
public Major getMajor() {
return major;
}
public void setMajor(Major major) {
this.major = major;
}
}
二、一对一映射
@Mapper
public interface MSmapper {
@Select("select * from major_tab where id = #{id}")
Major selectMajorById(@Param("id") Integer id);
@Select("select * from sclass_tab")
@Results({
@Result(id = true, property = "id", column = "id"),
@Result(property = "major", column = "majorId",
one = @One(select = "com.csdn.mapper.MSmapper.selectMajorById"))
})
List<Sclass> selectAllSclass();
}
三、一对一service层代码
public interface MSService {
List<Sclass> findAllSclass();
}
@Service
public class MSServiceImpl implements MSService {
@Autowired(required = false)
private MSmapper mapper;
@Override
public List<Sclass> findAllSclass() {
return mapper.selectAllSclass();
}
}
四、一对一controller层代码
@RequestMapping("/selectSclass")
public String selectSclass(Model model){
List<Sclass> list = service.findAllSclass();
model.addAttribute("list", list);
return "sclass";
}
五、一对一前端HTML代码
<div class="container" style="margin-top: 60px">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<td>专业</td>
<th>班级</th>
</tr>
</thead>
<tbody>
<tr th:each="sclass:${list}">
<td th:text="${sclass.major.majorName}"></td>
<td th:text="${sclass.sclassName}"></td>
</tr>
</tbody>
</table>
</div>
六、显示结果