<select id="getSystemUpsetList" resultMap="BaseResultMap"> select * from system_upset where 1=1 <if test="systemUpset.id != null"> and id like CONCAT('%',#{systemUpset.id},'%') </if> order by create_time desc <if test="page != null and limit != null"> limit #{page},#{limit} </if> </select>
时间: 2024-03-26 09:37:43 浏览: 82
这是一个 MyBatis 的 XML 映射文件中的一个 select 标签。它定义了一个名为 getSystemUpsetList 的 SQL 查询语句,查询系统设置表(system_upset)中的记录。其中:
- resultMap="BaseResultMap" 指定了查询结果集的映射关系,即将查询结果映射到 BaseResultMap 中定义的实体类中。
- 1=1 是一个占位符,为后续的 SQL 语句拼接提供便利。
- <if> 标签中的 test 属性用于判断是否需要拼接该条件,如果 test 表达式的返回结果为 true,则该条件才会被拼接到 SQL 语句中。
- #{systemUpset.id} 是 MyBatis 的占位符语法,表示该位置将会被实际参数替换。
- order by create_time desc 表示按照创建时间倒序排序。
- <if> 标签中的 test 属性同上,用于判断是否需要拼接 limit 子句。
- #{page} 和 #{limit} 也是 MyBatis 的占位符语法,表示分页查询中的页码和每页记录数。
相关问题
<?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.phonemarket.mapper.BannerMapper"> <resultMap type="Banner" id="BaseResultMap"> <id property="bannerId" column="banner_id" /> <result property="bannerName" column="banner_name" /> <result property="bannerUrl" column="banner_url" /> <result property="bannerImg" column="banner_img" /> <result property="bannerState" column="banner_state" /> </resultMap> <insert id="addBanner" parameterType="Banner"> insert into banner(banner_name,banner_url,banner_img) values(#{bannerName},#{bannerUrl},#{bannerImg}) </insert> <update id="deleteBanner" parameterType="java.lang.Integer"> update banner set banner_state=-1 where banner_id=#{id} </update> <update id="changeBannerState" parameterType="java.lang.Integer"> update banner set banner_state=#{0} where banner_id=#{1} </update> <update id="updateBanner" parameterType="Banner"> update banner <set> <if test="bannerName!=null"> banner_name=#{bannerName}, </if> <if test="bannerUrl!=null"> banner_url=#{bannerUrl}, </if> <if test="bannerImg!=null"> banner_img=#{bannerImg} </if> </set> where banner_id=#{bannerId} </update> <select id="findBannerById" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select * from banner where banner_id=#{id} </select> <select id="findAllBanner" resultMap="BaseResultMap"> select * from banner where banner_state > 0 </select> <select id="findAllBannerByLikeName" parameterType="java.lang.String" resultMap="BaseResultMap"> select * from banner where banner_state > 0 and banner_name like '%${value}%' </select> <select id="findAllShowBanner" resultMap="BaseResultMap"> select * from banner where banner_state=1 </select> </mapper>
这是一个 MyBatis 的 XML 配置文件,用于映射 Banner 对象和 banner 数据库表之间的关系。文件中定义了一个 namespace 为 com.phonemarket.mapper.BannerMapper 的 Mapper,并包含了一些 SQL 语句,如插入、删除、更新和查询等。括号中的参数类型表示 SQL 语句中的参数类型,resultMap 定义了查询结果与 Banner 对象之间的映射关系。其中BaseResultMap是一个标识符,表示基本的结果映射,对应了Banner类中的属性名称。在 SQL 语句中,#{param} 表示参数占位符,${value} 表示变量占位符。
<select id="selectProject" parameterType="project" resultMap="BaseResultMap"> select * from project <where> <if test="pName != null and pName != ''"> and p_name like concat('%', #{pName}, '%')</if> <if test="pManager != null and pManager != ''"> and p_manager = #{pManager}</if> <if test="pPeople != null and pPeople != ''"> and p_people = #{pPeople}</if> <if test="pImg != null and pImg != ''"> and p_img = #{pImg}</if> <if test="pDescribe != null and pDescribe != ''"> and p_describe = #{pDescribe}</if> <if test="pTasks != null "> and p_tasks = #{pTasks}</if> <if test="pTasksplan != null "> and p_tasksplan = #{pTasksplan}</if> <if test="pTasksre != null">and p_tasksre = #{pTasksre}</if> <if test="pPlanprogress != null "> and p_planprogress = #{pPlanprogress}</if> <if test="pProgress != null "> and p_progress = #{pProgress}</if> <if test="pStatus != null "> and p_status = #{pStatus}</if> </where> </select>
根据您提供的代码,您的查询语句看起来没有问题。但是,我注意到您在查询语句中使用了 parameterType="project",这意味着您的查询方法应该接受一个 Project 对象作为参数。由于您的查询结果为 null,有可能是传递给查询方法的 Project 对象中的属性值不正确导致查询失败。您可以检查一下传递给 selectProject 方法的 Project 对象是否正确设置了属性值。如果您能提供更多的代码和错误信息,我可以更准确地帮助您解决问题。
阅读全文