mybatis–基础–3.2–xml映射文件–select元素
代码地址
https://gitee.com/DanShenGuiZu/learnDemo/tree/mysql_mybaties_DB/mybatis-learn-master
1、select元素
1.1、案例
<select id="selectPerson" parameterType="int" resultType="hashmap">
SELECT * FROM PERSON WHERE ID = #{id}
</select>
-
这个语句被称作selectPerson,接受一个int(或Integer)类型的参数,并返回一个HashMap类型的对象,其中的键是列名,值便是结果行中的对应值。
-
#{id}
:预处理语句参数,通过JDBC,这样的一个参数在SQL中会由一个"?"来标识,并被传递到一个新的预处理语句中,就像下面这样:
2、属性
<select
id="selectPerson"
parameterType="int"
parameterMap="deprecated"
resultType="hashmap"
resultMap="personResultMap"
flushCache="false"
useCache="true"
timeout="10000"
fetchSize="256"
statementType="PREPARED"
resultSetType="FORWARD_ONLY">
- id:
- sql语句的唯一标识符
- parameterType
- 参数类型,使用全类名或者别名
- 可选:MyBatis可以通过TypeHandler推断出具体传入语句的参数类型
- 默认值:unset
- resultType
- 返回类型,使用全类名或者别名
- resultType、resultMap不能同时使用。
- resultMap
- 外部resultMap的命名引用。
- resultType、resultMap不能同时使用。
- flushCache
- true:任何时候只要语句被调用,都会清空本地缓存和二级缓存
- 默认值:false。
- useCache
- true:本条语句的结果被二级缓存
- 默认值:对select 元素为true。
- timeout
- 这个设置是在抛出异常之前,驱动程序等待数据库返回请求结果的秒数。
- 默认值为unset(依赖驱动)。
- fetchSize
- 尝试影响驱动程序每次批量返回的结果行数为fetchSize值
- 默认值:unset(依赖驱动)。
- statementType
- STATEMENT,PREPARED或CALLABLE 的一个。这会让MyBatis分别使用 Statement,PreparedStatement或CallableStatement,
- 默认值:PREPARED。
- resultSetType
- FORWARD_ONLY,SCROLL_SENSITIVE或SCROLL_INSENSITIVE中的一个
- 默认值:unset (依赖驱动)。
- databaseId
- 如果配置了databaseIdProvider,MyBatis会加载所有的不带databaseId或匹配当前 databaseId的语句;
- 如果带或者不带的语句都有,则不带的会被忽略。
- resultOrdered
- 这个设置仅针对嵌套结果
- true: 就是假设包含了嵌套结果集或是分组了,这样的话当返回一个主结果行的时候,就不会发生有对前面结果集的引用的情况。这就使得在获取嵌套的结果集的时候不至于导致内存不够用。
- 默认值:false
- resultSets
- 仅对多结果集的情况适用,它将列出语句执行后返回的结果集并每个结果集给一个名称,名称是逗号分隔的。