介绍
这篇文章运用简单易懂的例子给大家介绍使用mybatis如何实现让返回值与bean中字段相匹配,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强> 1。编写目的强>
这个介绍的与那些修改mybatis.xml文件的方法不一样,目的也不一样。
当我们需要查询的数据的跟实体bean完全不匹配的时候(比如说需要统计的时候),我们不可能写多个dao层的查询接口,然后一个一个映射到xml中去。
我们可以专门写一个类,根据自己的需要把统计的属性都写到里面去,然后一次性查询,就可以获得所有需要统计的数据。
<强> 2。重要方法强>
专门编写一个实体类。实体类中包含的都是自己需要统计的属性。
编写dao层的接口方法的返回值就是这个实体类。
在映射的地图。xml中编写查询时,使用作为…的方法与实体类中的属性一一对应。
<强> 3。具体案例强>
<强>需求:需要统计日记表中某个用户的以下属性:强>
总共编写日记数目
删除日记数目
心情开心篇数
心情一般篇数
心情差篇数
心情极差篇数
晴朗天气篇数
阴天篇数
雨天篇数
…
<>强实体类的编写强>
包cn.ailanglang.diary.util; 公开课StatisticBean { 私人整数求和; 私人整数mood0; 私人整数mood1; 私人整数mood2; 私人整数mood3; 私人整数weather0; 私人整数weather1; 私人整数weather2; 私人整数weather3; 私人整数weather4; 私人整数weather5; 私人整数weather6; 私人整数weather7; 私人整数unknow_weather; 私人整数unknow_mood; 公共整数getSum () { 返回总和; } 公共空间setSum(整数求和){ 这一点。和=总和; } 公共整数getWeather0 () { 返回weather0; } 公共空间setWeather0(整数weather0) { 这一点。weather0=weather0; } 公共整数getWeather1 () { 返回weather1; } 公共空间setWeather1(整数weather1) { 这一点。weather1=weather1; } 公共整数getWeather2 () { 返回weather2; } 公共空间setWeather2(整数weather2) { 这一点。weather2=weather2; } 公共整数getWeather3 () { 返回weather3; } 公共空间setWeather3(整数weather3) { 这一点。weather3=weather3; } 公共整数getWeather4 () { 返回weather4; } 公共空间setWeather4(整数weather4) { 这一点。weather4=weather4; } 公共整数getWeather5 () { 返回weather5; } 公共空间setWeather5(整数weather5) { 这一点。weather5=weather5; } 公共整数getWeather6 () { 返回weather6; } 公共空间setWeather6(整数weather6) { 这一点。weather6=weather6; } 公共整数getWeather7 () { 返回weather7; } 公共空间setWeather7(整数weather7) { 这一点。weather7=weather7; } 公共整数getUnknow_weather () { 返回unknow_weather; } 公共空间setUnknow_weather(整数unknow_weather) { 这一点。unknow_weather=unknow_weather; } 公共整数getUnknow_mood () { 返回unknow_mood; } 公共空间setUnknow_mood(整数unknow_mood) { 这一点。unknow_mood=unknow_mood; } 公共整数getMood0 () { 返回mood0; } 公共空间setMood0(整数mood0) { 这一点。mood0=mood0; } 公共整数getMood1 () { 返回mood1; } 公共空间setMood1(整数mood1) { 这一点。mood1=mood1; } 公共整数getMood2 () { 返回mood2; } 公共空间setMood2(整数mood2) { 这一点。mood2=mood2; } 公共整数getMood3 () { 返回mood3; } 公共空间setMood3(整数mood3) { 这一点。mood3=mood3; } }
<>强dao层接口方法强>
& lt;选择id=癱ountMood"parameterType=癹ava.lang.Long"resultType=癱n.smileyan.diary.util.StatisticBean"比; 选择 数(diary.pk_diaryid)和, sum(案例当diary.mood=& # 39; 0 & # 39;那么其他1 mood0 0结束), sum(当diary.mood=& # 39; 1 & # 39;那么其他1 mood1 0结束), sum(案例当diary.mood=& # 39; 2 & # 39;那么其他1 mood2 0结束), sum(案例当diary.mood=& # 39; 3 & # 39;那么其他1 mood3 0结束), sum(案例当diary.weather=& # 39; 0 & # 39;那么其他1 weather0 0结束), sum(当diary.weather=& # 39; 1 & # 39;那么其他1 weather1 0结束), sum(案例当diary.weather=& # 39; 2 & # 39;那么其他1 weather2 0结束), sum(案例当diary.weather=& # 39; 3 & # 39;那么其他1 weather3 0结束), sum(案例当diary.weather=& # 39; 4 & # 39;那么其他1 weather4 0结束), sum(案例当diary.weather=& # 39; 5 & # 39;那么其他1 weather5 0结束), sum(案例当diary.weather=& # 39; 6 & # 39;那么其他1 weather6 0结束), sum(案例当diary.weather=& # 39; 7 & # 39;那么其他1 weather7 0结束) 从user_diary日记 日记的地方。pk_diaryid=user_diary.fk_diaryid 和user_diary。fk_userid=# {userid}; & lt;/select>使用mybatis如何实现让返回值与bean中字段相匹配