以下是 <select> 元素的基本结构:
<select
id="selectStatementId"
resultType="fully.qualified.ResultType"
parameterType="fully.qualified.ParameterType"
resultMap="fully.qualified.ResultMap">
<!-- SQL查询语句 -->
SELECT * FROM your_table WHERE column = #{parameterName}
</select>
- id 属性是映射器接口中对应方法的名称,也是该查询语句的唯一标识。
- resultType 属性指定了查询结果集的映射类型,即返回的Java对象类型。
- parameterType 属性指定了方法参数的类型,可以是基本类型、包装类型或者自定义的Java对象。
- resultMap 属性指定了一个 <resultMap> 的ID,用于定义复杂的查询结果映射规则。
在 <select> 元素内部,可以编写常规的SQL查询语句,使用 #{parameterName} 形式的占位符来引用方法参数。MyBatis会将这些占位符替换为具体的参数值。
示例:
<select id="getUserById" resultType="com.example.model.User" parameterType="java.lang.Long">
SELECT * FROM users WHERE id = #{id}
</select>
在这个例子中,getUserById 是映射器接口中对应方法的名称,resultType 是查询结果集的映射类型,parameterType 是方法参数的类型。查询语句使用了一个占位符 #{id},表示该查询语句需要接收一个名为 id 的参数。
你还可以使用动态SQL语句,例如使用 <if> 元素进行条件判断,构建更灵活的查询语句:
<select id="getUsers" resultType="com.example.model.User" parameterType="com.example.model.User">
SELECT * FROM users
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="password != null">
AND password = #{password}
</if>
</where>
</select>
这个例子中,getUsers 方法接收一个 User 对象作为参数,通过 <where> 元素和 <if> 元素构建了一个动态的条件查询语句。
<select> 元素还有其他一些属性和子元素,可以根据实际需求进行配置,例如 fetchType、resultSetType、flushCache 等,以及 <include> 元素用于引入其他SQL片段。更详细的信息可以查阅官方文档:[MyBatis - Select](https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#select)。
转载请注明出处:http://www.zyzy.cn/article/detail/7007/MyBatis