使用mybatis如何实现让返回值与bean中字段相匹配

  介绍

这篇文章运用简单易懂的例子给大家介绍使用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中字段相匹配