springmvc+mybatis+ajax 批量插入數據
批量插入。AJAX發起請求,核心代碼如下:
var mids = new Array();
for (var i=0; i< rows.length; i++) {
mids.push(rows[i].id);
}
$.ajax({
type: 'POST',
dataType: "json",
async: false,
traditional:true, //這一行很重要
url: parent.getBasePath()+"sys/role/setAuth.do",
data: {'mids': mids},
success: function(data) {},
error: function(err) {}
});
接下來是Controller的代碼:
//直接在方法里傳入List會報錯,所以要通過一個類封裝一層
@RequestMapping("/setAuth")
@ResponseBody
public Map<String,Object> setAuth(Short id, ModParam midsA) {
}
//封裝List對象的類
public class ModParam implements Serializable{
private static final long serialVersionUID = 8607859409880232081L;
private List<Short> mids;
public List<Short> getMids() {
return mids;
}
public void setMids(List<Short> mids) {
this.mids = mids;
}
}
Contoller一層一層的往下調用,最后到了Mapper:
/*** * 批量插入 * @return * @throws Exception */ int insertWithList(List<RoleResource> rr) throws Exception;
對應的xml(我這里的id不是一個自增的Sequence,我是去表中選取最大的id,然后依次加1,寫入到對象,所以沒有用到mybatis的selectKey,這里是針對Oracle):
<insert id="insertWithList" parameterType="java.util.List">
insert into T_WEB_ROLE_RESOURCE(id, role_id, source_id, remark)
<foreach collection="list" item="item" index="index" separator="union all">
select #{item.id},#{item.roleId},#{item.sourceId},#{item.remark} from dual
</foreach>
</insert>
嗯,這就差不多了。
附上一個參考鏈接:
http://chenzhou123520.iteye.com/blog/1583407
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!