不知道哪里出了问题

不知道哪里出了问题

相关代码:

package com.imooc.mybatis.entity;

public class Student {
    private Integer id;
    private Integer regNo;
    private String name;
    private String sex;
    private Integer age;
    private String grade;
    private String major;
    private String classNo;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getRegNo() {
        return regNo;
    }

    public void setRegNo(Integer regNo) {
        this.regNo = regNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getClassNo() {
        return classNo;
    }

    public void setClassNo(String classNo) {
        this.classNo = classNo;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", regNo=" + regNo +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", grade='" + grade + '\'' +
                ", major='" + major + '\'' +
                '}';
    }
}

相关代码:

package com.imooc.mybatis.entity;

import java.util.List;

public class Classes {
    private Integer id;
    private String classNo;
    private String name;
    private String major;
    private List<Student> student;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getClassNo() {
        return classNo;
    }

    public void setClassNo(String classNo) {
        this.classNo = classNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public List<Student> getStudent() {
        return student;
    }

    public void setStudent(List<Student> student) {
        this.student = student;
    }
}

相关代码:

//作业
@Test
public void testOneToMany1(){
    List<Classes> list = session.selectList("classes.selectByClassNo");
    for (Classes classes:list){
        System.out.println(classes.getName()+":"+classes.getStudent().size());
    }
}

相关代码:

<?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="classes">

    <resultMap id="a" type="com.imooc.mybatis.entity.Classes">
        <id property="id" column="id"/>
        <collection property="classNo" select="s.selectByClassNo" column="class_no"/>
    </resultMap>
    <select id="selectByClassNo" resultMap="a">
        select * from classes limit 0,1;
    </select>
</mapper>

相关代码:

<?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="s">
    <select id="haha" resultType="com.imooc.mybatis.entity.Student">
        select *
        from student
        order by id
    </select>
    <insert id="insert" parameterType="com.imooc.mybatis.entity.Student">
        insert into student(reg_no, name,sex,age,grade,major)
        values (#{regNo},#{name},#{sex},#{age},#{grade},#{major})
        <selectKey keyProperty="id" resultType="Integer" order="AFTER">
            select last_insert_id()
        </selectKey>
        <!--        <selectKey resultType="Integer" keyProperty="id" order="AFTER">-->
        <!--            select last_insert_id();-->
        <!--        </selectKey>-->

    </insert>

    <select id="dynamicSQL" parameterType="java.util.Map" resultType="com.imooc.mybatis.entity.Student">
        select * from student
        <where>
            <if test="age != null">
                and age &gt;#{age}
            </if>
            <if test="sex != null">
                and sex =#{sex}
            </if>
        </where>
    </select>
    
    //这是自由编程的代码
    <select id="selectByClassNo" parameterType="String" resultType="com.imooc.mybatis.entity.Student">
        select * from student where class_no=#{value}
    </select>
</mapper>

相关代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/school?useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="abc123456"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="mappers/goods.xml"/>
        <mapper resource="mappers/goods_detail.xml"/>
        <mapper resource="mappers/student.xml"/>
        <mapper resource="mappers/classes.xml"/>
    </mappers>
</configuration>

相关截图:

https://img1.sycdn.imooc.com//climg/61bd83c3094e3e5417150260.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
路人甲华华华 提问者 2021-12-18 14:53:09

问题解决了,是因为我在mapper文件里

<collection property="classNo" select="s.selectByClassNo" column="class_no"/>

应该是这样

<collection property="student" select="s.selectByClassNo" column="class_no"/>


  • 同学自己找到了问题所在,很棒呐,继续加油,祝学习愉快~

    2021-12-18 15:22:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师