spring boot -mybaits 的返回各种数据类型

1.1 返回单个实体

dao层:

mapper层:

id :identification:语句的标识,在同一个mapper映射文件下id需要唯一
parameterType: 参数类型,可以不写。因为 MyBatis 可以推断出传入语句的具体参数
resultType: 全限定类名或者是类型别名.
当使用resultType来映射结果时,需要 数据库表的列名或列别名 和 类的属性名相同,这样才能进行字段的匹配(USER_ID 和userId 就不能匹配)。但是如果在Mybatis配置文件中设置了

<settings>
  <setting name="mapUnderscoreToCamelCase" value="true"/> <!--开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。-->
</settings>

此 时,表列名的下划线标记方式可以映射到驼峰标记的形式。(USER_ID -> userId)。mybatis进行映射时会将实体类属性和数据库列名(别名)都转化为大写来比较,所以USER_ID 和 UserId,userID等都可以匹配。

TooManyResultsException
返回单个实体时,调用方法 getUserById,但是如果是因为数据错误导致实际查询结果存在多个时,则会抛出异常

org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2

除非可以确定最多只能查询到一条结果,否则的话不建议这么写.可以尝试返回集合的方式。

1.2通过返回list<String>:

/**
 * 查询区域id,公司id,品牌id的组合
 * @param operateArea
 * @return
 */
List<String> getYesterdayShelfBikeCompose(OperateAreasBo operateArea);

这里有点奇怪:要返回list<String>, 为何xml中resultType的类型设置为String,就行了

1.3.返回list<Javabean>

mapper:
//工单的统计
List<OperateTaskStatisticsBo> totalTaskStatistics(OperatorTaskDto operatorTaskDto);

xml的方法:

<!--工单统计数据-->

<select id="totalTaskStatistics" parameterType="xxx.domain.operator.dto.OperatorTaskDto" resultType="xxx.domain.operator.bo.OperateTaskStatisticsBo"> select search_day as searchDay, SUM(IFNULL(exchage_count,0)) as exchangeBatteryNum
from   A

1.4.返回integer与String

1.返回integer

/**
 * 通过区域id,公司id,品牌id查询前一天上架车辆
 * @return
 */
Integer getYesterdayShelfBikeNumSum(OperateAreasBo operateArea);

2.返回string 

 

 

 

1.5.返回map类型,返回多行数据

map的key对应指定的字段名字所属值,map的value对应查出数据封装成的bean,返回的多条数据

dao层接口:

xmlMapper:

<!--查询可用的运营城市的运营城市名称-->
<select id="getOperateCityName" resultType="xxxx.domain.config.entity.OperateCity">
    select ad_code as adCode, operate_city_name as operateCityName from  operate_city where  del_flag=0
</select>

1.6.返回map类型,返回单条数据

1.service层

2.dao层

3.mapper

13、Mybatis把返回结果封装成map类型_u010502101的博客-CSDN博客_mybatis查询结果封装成map

1.7.返回map<String,List<Bean>>结构的数据

1.model:

2.mapper:

 3.dao

 4.controller

5.调用结果:

注意注意,返回的数据类型为map的话,,resultType不能使用,否则报错

 要改成:resultMap

1.8.使用@param参数

service:
@Override
public void batchupdateOrderNumCover1(String beginDate,String endDate) {
dailyOrderStatisticsReportInsertMapper.batchupdateOrderNumCover1(beginDate,endDate);
}

dao:
/**
 * 修改订单订单数》=1的用户状态
 */
public void  batchupdateOrderNumCover1(@Param("startTime")String startDate,@Param("endTime")  String endDate);

xml:

注意xml引用的参数要和@Param("xxx") 中xxx对应

1.9.传递interger类型的参数

在xml中,切记不能将integer,写成java.util.Intger下面,否则报错

报错:

正确的做法:java.lang.Integer

1.10  mybaits的like 模糊查询

设置各种复杂的like查询

 mybaits上进行查询


版权声明:本文为u011066470原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。