Mybatis中的批量修改,批量删除,批量新增,和新增后返回主键

1. 批量修改,批量删除,批量新增

    1)批量更新

	 		
		UPDATE
			data_link_task_run
		SET
			is_deleted = '1',
			sys_update = CURRENT_TIMESTAMP,
    		sys_oper = #{owner}
    	WHERE
    		id IN 
   
    	 
    		#{item}
			      
	

    传入的参数:  

{owner=sys, idList=[7, 8, 9, 10]}

2)批量新增和批量删除类似与批量修改,只是批量新增时foreach包裹的是values里面的内容,逗号分隔;批量删除时,包裹的是WHERE过滤条件,使用‘AND’进行分隔,且不需要open和close。

2. 新增后返回主键

    
    	
		SELECT LAST_INSERT_ID()
		
    	INSERT INTO 
    		data_link_task_quartz (cron_express, owner, sys_create, sys_oper)
    	VALUES
			(#{cronExpress}, #{owner}, CURRENT_TIMESTAMP, #{owner})
    

 该ID必须是自增的,返回的ID会放入入参对象中,本例是map,

        m.put("id", null);
		int insertQuartz = commonDataSourceLinkDao.insert("dwdatalink_add_task_quartz", m);
		if(insertQuartz > 0) {
			timeRef = (Long)m.get("id");
		} else {
			logger.error("CRON表达式插入失败");
			throw new Exception("任务新增失败!");
		}

也就是需要先在map中存在以id为key的键值对,新增完毕后,使用get方法取出id的值即可。

你可能感兴趣的:(java)