【实际开发04】- XxxMapper.xml/java - 批量处理

目录

1. Model : XxxMapper.xml

1. IotTypeMapper.xml 基础 × 3 tips

2. Model : XxxMapper.java

1. IotTypeMapper.java 基础 × 3 tips

3. Others info

1. 模糊查询

2. 模糊查询 'name' 导致的异常 --> `name

3. 连接查询 Where 限制主表 , 谨慎 : 使用副表限制 - ★

4. 数据去重 : group by | distinct ( 视情况选择 )

5. 以 map 为查询条件的 API

6. 标签判断处理 : String / 集合 / 基本数据类型参数为 0

7. 将 null 值更新到数据库


1. Model : XxxMapper.xml


1. IotTypeMapper.xml 基础 × 3 tips

    
    
        
        
        
        
        
        
        
        
    

    
    
        id ,  name ,  type ,  attribute ,  status ,  create_time ,  update_time ,  del_flag
    

    
    

    
    

优化纪录

1、查存时增加状态 status 条件 , 启动 status 禁用全局隐藏机制 - 20.10.24


2. Model : XxxMapper.java


1. IotTypeMapper.java 基础 × 3 tips

    /**
     * 无参查询资源类型List
     * @return 资源类型展示对象集合IotTypeVOList
     */
    List queryIotTypeList();

    /**
     * 条件查询资源类型List
     * @param iotTypeDTO 资源类型接收入参DTO
     * @return 资源类型展示对象集合IotTypeVOList
     */
    List queryByConditions(@Param("iotTypeDTO") IotTypeDTO iotTypeDTO);

    /**
     * 条件查询资源类型Page
     * @param page 分页参数
     * @param iotTypeDTO 资源类型接收入参DTO
     * @return 资源类型展示对象集合IotTypeVOList
     */
    IPage queryByConditions(@Param("page")Page page ,  @Param("iotTypeDTO") IotTypeDTO iotTypeDTO);


3. Others info


1. 模糊查询

    
        and u.name like CONCAT('%' , #{userDTO.name} , '%')
    

%通配符使用

-- 匹配以"yves"开头的记录:(包括记录"yves")
SELECT * FROM products WHERE products.prod_name like 'yves%';

-- 匹配包含"yves"的记录(包括记录"yves")
SELECT * FROM products WHERE products.prod_name like '%yves%';

-- 匹配以"yves"结尾的记录(包括记录"yves" , 不包括记录"yves " , 也就是yves后面有空格的记录 , 这里需要注意)
SELECT * FROM products WHERE products.prod_name like '%yves';

_ 通配符使用

--匹配结果为: 像"yyves"这样记录.
SELECT * FROM products WHERE products.prod_name like '_yves';

--匹配结果为: 像"yvesHe"这样的记录.(一个下划线只能匹配一个字符 , 不能多也不能少)
SELECT * FROM products WHERE products.prod_name like 'yves__';


2. 模糊查询 'name' 导致的异常 --> `name

         
                AND 'name' like CONCAT('%' , #{iotTypeDTO.name} , '%')
            

 导致模糊查询 name 参数失效

API 调用返回结果集 : {}

修改

            
                AND name like CONCAT('%' , #{iotTypeDTO.name} , '%')
            

【实际开发04】- XxxMapper.xml/java - 批量处理_第1张图片


3. 连接查询 Where 限制主表 , 谨慎 : 使用副表限制 - ★

SELECT
img.id ,  img.name ,  img.cause ,  img.tenant_id ,  img.room_id ,  img.compere_id ,  img.preparer_id ,  img.type ,  img.level ,  img.start_time ,  img.end_time , 
img.introduction ,  img.status ,  img.create_time ,  img.update_time ,  img.del_flag ,  irm.structure_id  , irm.name AS roomName
FROM iot_meeting img
LEFT JOIN iot_room irm ON img.room_id = irm.id
WHERE
img.del_flag = 0 AND irm.del_flag = 0
AND to_days(img.start_time) = to_days("2021-04-015 12:00:00")

【实际开发04】- XxxMapper.xml/java - 批量处理_第2张图片

SELECT
img.id ,  img.name ,  img.cause ,  img.tenant_id ,  img.room_id ,  img.compere_id ,  img.preparer_id ,  img.type ,  img.level ,  img.start_time ,  img.end_time , 
img.introduction ,  img.status ,  img.create_time ,  img.update_time ,  img.del_flag ,  irm.structure_id  , irm.name AS roomName
FROM iot_meeting img
LEFT JOIN iot_room irm ON img.room_id = irm.id
WHERE
img.del_flag = 0 AND irm.del_flag = 0
AND to_days(img.start_time) = to_days("2021-04-015 12:00:00")

【实际开发04】- XxxMapper.xml/java - 批量处理_第3张图片


4. 数据去重 : group by | distinct ( 视情况选择 )


5. 以 map 为查询条件的 API


6. 标签判断处理 : String / 集合 / 基本数据类型参数为 0

【实际开发04】- XxxMapper.xml/java - 批量处理_第4张图片


7. 将 null 值更新到数据库

你可能感兴趣的:(Java,篇,java,xml,sql)