在SSM中查询出的结果字段不全,但在数据库里执行现实完整

在SSM框架中执行SQL查询时,返回结果缺少SchoolCollegeName、MajorName、CourseName字段。原因在于Book实体类中未定义这些字段。解决方法包括:1) 在Book实体类中添加这三个字段的定义和封装;2) 修改SQL的resultType为resultMap,自定义resultMap来指定需要显示的字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如下:这段sql代码在ssm框架中运行出来缺少字段SchoolCollegeName、MajorName、CourseName

<select id="SelectBookInfo"  parameterType="HashMap" resulType="com.example.demo.model.Book
">
    select id,SchoolCollegeID,MajorID,CourseID,GetSchoolCollegeName(SchoolCollegeID) as 
    SchoolCollegeName,GetMajorName(MajorID) as MajorName,GetCourseName(CourseID) as 
    CourseName,Name,PushStatus,CoverImageAssTrueName,CoverImageAssSysName from Book
</select>

然后经过搜搜我发现,原来是在 Book 这个Model类中没有关于SchoolCollegeName、MajorName、CourseName的定义和方法,所以我现在发现的解决方法有两种

方法一:

       在Book 这个实体中添加对SchoolCollegeName、MajorName、CourseName这三个字段的定义以及封装。

方法二:
       将上面那段代码进行修改,把resultType修改为resultMap.自定义一个resultMap,在自定义的resultMap中添加你想显示的在sql语句中对应的字段名,我自定义的如下:

<resultMap id="BookInfo" type="HashMap">
        <id column="id" jdbcType="INTEGER" property="ID" />
        <result column="SchoolCollegeID" jdbcType="INTEGER" property="SchoolCollegeID" />
        <result column="MajorID" jdbcType="INTEGER" property="MajorID" />
        <result column="CourseID" jdbcType="INTEGER" property="CourseID" />
        <result column="SchoolCollegeName" jdbcType="VARCHAR" property="SchoolCollegeName" />
        <result column="MajorName" jdbcType="VARCHAR" property="MajorName" />
        <result column="CourseName" jdbcType="VARCHAR" property="CourseName" />
        <result column="Name" jdbcType="VARCHAR" property="Name" />
        <result column="PushStatus" jdbcType="VARCHAR" property="PushStatus" />
        <result column="CoverImageAssTrueName" jdbcType="VARCHAR" property="CoverImageAssTrueName" />
        <result column="CoverImageAssSysName" jdbcType="VARCHAR" property="CoverImageAssSysName" />
</resultMap>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值