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

2598

被折叠的 条评论
为什么被折叠?



