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上进行查询

