<select id="selectTreeByCondition" resultType="com.generalichina.ewmp.api.system.entity.SysMenuEntity"> SELECT distinct t.id as tmpId, t.* FROM SYS_MENU t CONNECT BY PRIOR t.parent_id = t.id START WITH 1 = 1 <if test="data.name!=null and data.name !="""> AND t.name LIKE concat(concat('%', #{data.name}), '%') </if> <if test="data.status!=null"> AND t.status = #{data.status} </if> </select>
时间: 2024-02-14 13:14:28 浏览: 59
这是一个 MyBatis 的 SQL 语句,用于查询 SYS_MENU 表中符合条件的数据。其中使用了 CONNECT BY PRIOR 连接关键词,表示按照 parent_id = id 的关系进行自连接,即查询出所有的子孙节点。START WITH 1 = 1 表示从根节点开始查询。此外,该语句还使用了 IF 标签进行条件判断,根据不同的条件拼接查询条件。如果 data.name 不为 null 且不为空字符串,则拼接以 data.name 为 LIKE 匹配条件的查询条件;如果 data.status 不为 null,则拼接以 data.status 为查询条件的查询条件。最终查询结果使用 SysMenuEntity 类型进行封装返回。
相关问题
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mapper.sapper"> <delete id="deleteSp"> delete from sp where no=#{No}; </delete> <delete id="deleteUser"> delete from user where userzh=#{zh}; </delete> <select id="selectAll" resultType="com.pojo.sp"> select * from sp; </select> <select id="selectbyid" resultType="com.pojo.sp"> select * from sp where no=#{id} order by no desc; </select> <insert id="insertbyzh"> insert into user(userzh,usermima) values (#{userzh},#{usermima}); </insert> <insert id="insertsp"> insert into sp(spname,spnum,spprice,images) values (#{spname},#{spnum},#{spprice},#{images}) </insert> <update id="updated" parameterType="com.pojo.sp"> update sp set spnum=#{spnum} where no=#{NO}; </update> <update id="updatedAll" parameterType="com.pojo.sp"> update sp set spname=#{spname},spnum=#{spnum},spprice=#{spprice} where NO=#{NO} </update> <select id="selectbyname" resultType="com.pojo.user"> select usermima,userzh from user where userzh=#{userzh}; </select> <select id="selectall" resultType="com.pojo.user"> select * from user; </select> </mapper>
这是一个 MyBatis 的 mapper 文件,用于定义 SQL 语句和对应的方法,以及参数和返回值类型。其中包含了删除、插入、更新和查询操作,分别用于删除商品、删除用户、查询所有商品、根据商品ID查询商品、根据用户账号查询用户、查询所有用户、插入用户和插入商品等操作。该 mapper 文件对应的命名空间为 com.mapper.sapper。
解释代码<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.synu.sx.demo.mapper.StudentMapper"> <select id="list" parameterType="java.util.Map" resultType="com.synu.sx.demo.entity.Student"> select * from student <where> <if test="param.id != null and param.id != ''"> id = #{param.id} </if> </where> </select> <select id="listQuery" parameterType="java.util.Map" resultType="com.synu.sx.demo.entity.Student"> select * from student <where> <if test="param.name != null and param.name != ''"> and name like concat('%', #{param.name} ,'%') </if> <if test="param.id != null and param.id != ''"> and id like concat('%', #{param.id} ,'%') </if> </where> limit #{param.start}, #{param.limit} </select> <select id="listQueryCount" parameterType="java.util.Map" resultType="java.lang.Integer"> select count(*) from student <where> <if test="param.name != null and param.name != ''"> and name like concat('%', #{param.name} ,'%') </if> <if test="param.id != null and param.id != ''"> and id like concat('%', #{param.id} ,'%') </if> </where> </select> </mapper>
这段代码是一个XML文件,通常用于配置MyBatis框架中的SQL映射。它描述了一个名为StudentMapper的映射器,其中定义了三个查询语句。
第一个查询语句的id是"list",使用了一个名为param的Map类型参数,并将结果映射到com.synu.sx.demo.entity.Student类型。这个查询语句从student表中选择所有的列,并使用<where>标签来添加条件筛选。在<if>标签中,如果param的id属性不为空,则添加了一个id = #{param.id}的条件。
第二个查询语句的id是"listQuery",与第一个查询语句类似,不同之处在于它添加了更多的条件筛选和分页功能。除了id之外,它还检查了param的name属性,并使用like语句进行模糊匹配。最后,它使用limit语句来限制结果集的返回数量。
第三个查询语句的id是"listQueryCount",它与第二个查询语句类似,但返回的结果是记录总数而不是具体的记录。这个查询语句用于分页查询时获取总记录数。
这些查询语句可以通过MyBatis框架中的映射器接口调用并执行相应的SQL操作。
阅读全文