select

定义

select标签用于映射SQL中查询语句

参数符号

若以 #{}作为参数符号,MyBatis 则会创建一个预处理语句(PreparedStatement),它会被处理成?。如果你不希望使用预处理,那么可以使用${}参数符号,MyBatis 会将其以字符串的形式进行拼接,不过我们推荐你使用 #{},几乎所有人也都这样做。

select属性

我们摘取其中常见且重要的属性,如下表所示:

属性 描述
id 在命名空间中唯一的标识符 header
parameterType 语句的参数类型,默认可选,MyBatis 会自动推断
resultType 语句返回值类型,如果返回的是集合,那应该设置为集合包含的类型
resultMap 语句返回映射的 id;可以使用 resultType 或 resultMap,但不能同时使用。
flushCache 设置为 true 后,只要语句被调用,都会导致本地缓存和二级缓存被清空,默认为 false
useCache 设置为 true 后,本条语句的查询结果被二级缓存缓存起来,默认 select 标签为 true。
timeout 设置超时时间
fetchSize 设置预期返回的记录数量
statementType STATEMENT,PREPARED 或 CALLABLE 中的一个,默认为 PREPARED(预处理)

参数配置

#{}不仅可以传入参数名称,还可以传入参数类型和类型处理器。

比如:

#{age,javaType=int,jdbcType=int,typeHandler=IntegerTypeHandler}

其中 javaType 表示 age 的 Java 类型,jdbcType 表示 age 的数据库类型,typeHandler 表示 age 的类型处理器,关于类型处理器我们将在后面的章节介绍。

对于参数配置,90% 的情况你都只需要传入参数名即可,因为 MyBatis 都会自动推断出配置。

posted @ 2020-08-01 00:05  柒丶月  阅读(181)  评论(0编辑  收藏  举报