SELECT sm.*, ro.role_name FROM sp_manager sm LEFT JOIN sp_role ro ON sm.role_id = ro.role_id改成 <select id="getAdminList" resultType="com.iflytek.adminshop.vo.AdminInfoVO" parameterType="map"> select <include refid="baseSql"/> from sp_manager <where> <if test="mgName != null and mgName!=''"> <bind name="template" value=" '%'+_parameter.mgName+'%'"></bind> mg_name like #{template} </if> </where> </select>
时间: 2024-03-24 21:38:19 浏览: 101
这是一个 MyBatis 的 SQL 映射文件,用于查询 sp_manager 表中的数据并返回 AdminInfoVO 类型的结果。
其中,id 为 getAdminList,表示这个 SQL 映射的唯一标识符,可以被其他映射文件引用。
resultType 指定了查询结果映射的 Java 类型,这里是 AdminInfoVO。
parameterType 指定了查询参数的 Java 类型,这里是 Map 类型。
<include refid="baseSql"/> 表示引用了 id 为 baseSql 的 SQL 片段,这个片段可以在其他映射文件中定义,以便复用 SQL 语句。
where 子句中使用了 if 子元素,根据传入的参数动态生成 SQL 语句。如果传入的 mgName 不为空,就生成一个模糊查询条件,查询 mg_name 列中包含参数的数据。
bind 元素用于绑定一个参数,这里将一个模糊查询的参数绑定到了 template 变量中。
最终生成的 SQL 语句类似于:SELECT * FROM sp_manager WHERE mg_name LIKE '%keyword%',其中 keyword 为传入的 mgName 参数。
相关问题
SELECT sm.*, ro.role_name FROM sp_manager sm LEFT JOIN sp_role ro ON sm.role_id = ro.role_id解释一下
这是一条 SQL 查询语句,使用了 LEFT JOIN 连接了两张表 sp_manager 和 sp_role。其中 sm 和 ro 是两张表的别名。
查询结果包含 sp_manager 表中的所有列,同时还包括 sp_role 表中的 role_name 列。
通过 ON 子句指定了连接条件,即 sp_manager 表中的 role_id 列和 sp_role 表中的 role_id 列相等。
使用 LEFT JOIN 表示左连接,即查询结果包含 sp_manager 表中的所有行,同时如果 sp_role 表中没有匹配的行,则对应的列填充为 NULL。
阅读全文