手机
当前位置:查字典教程网 >编程开发 >Java >实例讲解Java批量插入、更新数据
实例讲解Java批量插入、更新数据
摘要:Java的批量添加数据,多个字段同时添加多条数据,我不知道你遇到过没有。今天我们就以一个具体的实例来说一下Java的批量添加数据,面向的是O...

Java的批量添加数据,多个字段同时添加多条数据,我不知道你遇到过没有。今天我们就以一个具体的实例来说一下Java的批量添加数据,面向的是Oracle数据库。

前台页面:

<span><body scroll="no"> <div> <form name="webform" method="post"> <div> <div> <div id="baseinfo">基本信息</div> <div id="semsinfo" >页签1</div> <div id="changeinfo"style="margin-right:2px;" >页签2</div> <div id="familyinfo" >页签3</div> <div id="changeinfo"style="margin-right:2px;" >页签4</div> <div id="familyinfo" >页签5</div> <div id="familyinfo" >页签6</div> </div> </div> <div id="bankCardDiv"> <div> <div>信息展示 <input id="addBank" type="button" value="新增一行" /> </div> <div> <table id="parttable" width='100%' border='0' cellspacing='1' cellpadding='0'> <tr> <th>序号</th> <th>属性1</th> <th>属性2</th> <th>属性3</th> <th>属性4</th> <th>属性5</th> <th>属性6</th> <th>属性7</th> <th>属性8</th> <th>属性9</th> <th>操作</th> </tr> <c:if test="${fn:length(personFamilyInfoList) > 0}"> <c:forEach items="${personFamilyInfoList}" var="personFamilyInfoList" varStatus="st"> <tr> <> <td>${st.count} <input type="hidden" name="personFamilyInfoList[${st.count-1}].SGuid" value="${personFamilyInfoList.SGuid}"/> <input type="hidden" name="personFamilyInfoList[${st.count-1}].SPersonGuid" value="${personFamilyInfoList.SPersonGuid}"/> <input type="hidden" name="personFamilyInfoList[${st.count-1}].SUnitGuid" value="${personFamilyInfoList.SUnitGuid }"> <input type="hidden" name="personFamilyInfoList[${st.count-1}].isEnable" value="${personFamilyInfoList.isEnable }"> </td> <> <td> <input id="sFamilyName${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyName" maxlength="20" value="${personFamilyInfoList.SFamilyName}"> </td> <> <td> <input id="sFamilyIdcardNo${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyIdcardNo" maxlength="20" value="${personFamilyInfoList.SFamilyIdcardNo}"> </td> <> <td> <select id="iFamilySex${st.count-1}" name="personFamilyInfoList[${st.count-1}].IFamilySex"> <zw:basedictlist itemCode="<%=Constants.I_PERSON_SEX %>" selectValue="${personFamilyInfoList.IFamilySex}"></zw:basedictlist> </select><font color="red">*</font> </td> <> <td> <select id="sFamilyRelation${st.count-1}" name="personFamilyInfoList[${st.count-1}].SFamilyRelation"> <zw:basedictlist itemCode="<%=Constants.S_FAMILY_RELATION %>" selectValue="${personFamilyInfoList.SFamilyRelation}"></zw:basedictlist> </select><font color="red">*</font> </td> <> <td> <input id="sFamilyInsurancePlace${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyInsurancePlace" maxlength="20" value="${personFamilyInfoList.SFamilyInsurancePlace}"> </td> <> <td> <input id="sFamilyResidencePalce${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyResidencePalce" maxlength="20" value="${personFamilyInfoList.SFamilyResidencePalce}"> </td> <> <td> <input id="sFamilyPhone${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyPhone" maxlength="20" value="${personFamilyInfoList.SFamilyPhone}"> </td> <> <td> <input id="dDentifySucessDate${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].DDentifySucessDate" value="${personFamilyInfoList.DDentifySucessDate}" onfocus="WdatePicker()" notnull="true" vdisp="首次参保时间" size="18" maxlength="18"/> <font color="red">*</font> </td> <> <td> <input id="dDentifyLostDate${st.count-1}" type="text" name="personFamilyInfoList[${st.count - 1}].DDentifyLostDate" value="${personFamilyInfoList.DDentifyLostDate}" onfocus="WdatePicker()" notnull="true" vdisp="首次参保时间" size="18" maxlength="18"/> </td> <td>取消</td> </tr> </c:forEach> </c:if> </table> </div> </div> </div> <div> <div> <table> <tr> <td width="100%" align="center"> <input id="btnNextstep" type="button" value="上一步" /> <input id="btnAdd" type="button" value="保存" /> <input id="" type="button" value="完成" /> <input id="btnReturn" type="button" value="返回" /> </td> </tr> </table> </div> </div> </form> </div> </body></span>

javascript函数:

<span><script type="text/javascript"> $(function(){ loadCheck(); }); function loadCheck(){ var trs = $('#parttable tr').length; if(trs == 1){ addNewRow(); } } //初始变量 var num = 0;//页面计数变量 var row = 1;//行增加计数变量 var index = 2;//List列表计数变量 function addNewRow(){ var trNum = $('#parttable tr').length; if(trNum>1){ row = trNum; num = trNum - 1; } var htmlText ='<tr>' +'<td>'+row+'</td>' +'<td>' +'<input id="sFamilyName'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyName" maxlength="20"></td>' +'<td>' +'<input id="sFamilyIdcardNo'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyIdcardNo" maxlength="20"></td>' +'<td>' +'<select id="iFamilySex'+num+'" name="personFamilyInfoList['+num+'].IFamilySex">' +'<zw:basedictlist itemCode="2000" selectValue="personFamilyInfoList['+num+'].IFamilySex"></zw:basedictlist>' +'</select><font color="red">*</font></td>' +'<td>' +'<select id="sFamilyRelation'+num+'" name="personFamilyInfoList['+num+'].SFamilyRelation">' +'<zw:basedictlist itemCode="135" selectValue="personFamilyInfoList['+num+'].SFamilyRelation"></zw:basedictlist>' +'</select><font color="red">*</font></td>' +'<td>' +'<input id="sFamilyInsurancePlace'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyInsurancePlace" maxlength="20"></td>' +'<td>' +'<input id="sFamilyResidencePalce'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyResidencePalce" maxlength="20"></td>' +'<td>' +'<input id="sFamilyPhone'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyPhone" maxlength="20"></td>' +'<td>' +'<input id="dDentifySucessDate'+num+'" type="text" name="personFamilyInfoList['+num+'].DDentifySucessDate" onfocus="WdatePicker()" notnull="true" vdisp="首次参保时间" size="18" maxlength="18"/><font color="red">*</font></td>' +'<td>' +'<input id="dDentifyLostDate'+num+'" type="text" name="personFamilyInfoList['+num+'].DDentifyLostDate" onfocus="WdatePicker()" notnull="true" vdisp="首次参保时间" size="18" maxlength="18"/></td>' +'<td>' +'<a>取消</a>' +'</td>' +'</tr>'; $("#parttable").append(htmlText); num = num + 1; row += 1; } //删除动态列表 function delInsuranceInfo(t){ if(row>0){row=row-1} else{return false;} $(t).parent().parent().remove(); } //保存或修改 function saveOrUpdate(){ $.ajax({ url: "personFamilyInfo_addOrUpdatePersonFamilyInfo_include_json.action", type: "POST", data: jQuery(document.forms[0]).serializeArray(), success: function(resObj) { //判断返回值 if (resObj.trim() == 'true') { Ext.MessageBox.alert("提示","保存成功",function(){ }); }else if(resObj.trim() == 'update'){ Ext.MessageBox.alert("提示","更新成功",function(){ }); } else { Ext.MessageBox.alert("提示","保存失败"); } } }); } </span> <span></script></span>

后台添加方法:

<span>/** * <p>Description: 批量添加多条信息</p> * @param personFamilyInfoList 实体列表 * @return 布尔值,true为添加成功,否则为添加失败 * @throws Exception * @author : gaoying * @update : * @date : 2015-7-20 */ public boolean addPersonFamilyInfo(List<PersonFamilyInfo> personFamilyInfoList) throws Exception{ boolean bool = false; if(personFamilyInfoList.size()>0 && personFamilyInfoList != null){ for(int i=0; i<personFamilyInfoList.size(); i++){ String personFamilyID = UUIDHexGenerator.getUUID(); String sunitGuid = "11111111"; String spersonGuid = "0000000"; if(personFamilyInfoList.get(i) != null){ personFamilyInfoList.get(i).setSGuid(personFamilyID); personFamilyInfoList.get(i).setSUnitGuid(sunitGuid); personFamilyInfoList.get(i).setSPersonGuid(spersonGuid); personFamilyInfoList.get(i).setIsEnable(0); personFamilyInfoList.get(i).setDOperateDate(new Date()); //设置系统的当前时间为生效时间,失效时间置为空 personFamilyInfoList.get(i).setDDentifySucessDate(new Date()); personFamilyInfoList.get(i).setDDentifyLostDate(null); try { String sGuidString = personFamilyInfoService.saveNeedPk(personFamilyInfoList.get(i)).toString(); if(!"".equals(sGuidString)&&sGuidString.length()>0){ bool = true; }else{ System.out.println("供养亲属信息表 第"+i+"条信息存储失败!"); bool = false; return bool; } } catch (Exception e) { e.printStackTrace(); } } } } return bool; }</span>

后台更新方法:

<span>/** * <p>Description: 批量更新信息</p> * @param personFamilyInfolist 实体列表 * @param personId 人员id * @return 布尔值,true代表更新成功,否则更新失败 * @throws Exception * @author : gaoying * @update : * @date : 2015-7-20 */ public void updatePersonFamilyInfo(List<PersonFamilyInfo> personFamilyInfolist, String personId) throws Exception{ //根据人员id查询页面有多少条数据 List<PersonFamilyInfo> oldPersonFamilyInfolist = personFamilyInfoService.getPersonFamilyInfoByPersonId(personId); int num = oldPersonFamilyInfolist.size(); if(personFamilyInfolist != null&&personFamilyInfolist.size() > 0){ //检查页面的信息是否有修改,然后更新到数据库 for(int i = 0; i<num; i++){ try{ //设置一个布尔值,如果变动字段设置为false,如果不变动则设置为true boolean bool = true; //判断哪些字段更改过 if(!oldPersonFamilyInfolist.get(i).getSFamilyName().equals(personFamilyInfolist.get(i).getSFamilyName())){ bool = false; } if(!oldPersonFamilyInfolist.get(i).getSFamilyIdcardNo().equals(personFamilyInfolist.get(i).getSFamilyIdcardNo())){ bool = false; } if(!oldPersonFamilyInfolist.get(i).getIFamilySex().equals(personFamilyInfolist.get(i).getIFamilySex())){ bool = false; } if(!oldPersonFamilyInfolist.get(i).getSFamilyRelation().equals(personFamilyInfolist.get(i).getSFamilyRelation())){ bool = false; } if(!oldPersonFamilyInfolist.get(i).getSFamilyInsurancePlace().equals(personFamilyInfolist.get(i).getSFamilyInsurancePlace())){ bool = false; } if(!oldPersonFamilyInfolist.get(i).getSFamilyResidencePalce().equals(personFamilyInfolist.get(i).getSFamilyResidencePalce())){ bool = false; } if(!oldPersonFamilyInfolist.get(i).getSFamilyPhone().equals(personFamilyInfolist.get(i).getSFamilyPhone())){ bool = false; } System.out.println("未更改前时间:"+oldPersonFamilyInfolist.get(i).getDDentifySucessDate().getTime()); System.out.println("更改后的时间:"+personFamilyInfolist.get(i).getDDentifySucessDate().getTime()); if(oldPersonFamilyInfolist.get(i).getDDentifySucessDate().getTime() != personFamilyInfolist.get(i).getDDentifySucessDate().getTime()){ bool = false; } if(bool == false){//证明字段更改过 //更新数据前,要把原来没改动的数据复制一条,添加进数据库,把系统的当前时间设为该条数据的失效时间 PersonFamilyInfo personFamilyInfo = new PersonFamilyInfo(); BeanUtils.copyProperties(oldPersonFamilyInfolist.get(i), personFamilyInfo); System.out.println("该条数据主键:" + personFamilyInfo.getSGuid()); personFamilyInfo.setSGuid(UUIDHexGenerator.getUUID()); System.out.println("设置主键:" + personFamilyInfo.getSGuid()); personFamilyInfo.setDOperateDate(new Date()); //将当前保存数据库的是否有效置为1:无效 personFamilyInfo.setIsEnable(1); personFamilyInfo.setDDentifyLostDate(new Date()); personFamilyInfoService.save(personFamilyInfo); //更新该条数据,把系统的当前时间设为系统的生效时间和操作时间,是否有效设为0:有效,失效时间为空 personFamilyInfolist.get(i).setIsEnable(0); personFamilyInfolist.get(i).setDDentifySucessDate(new Date()); personFamilyInfolist.get(i).setDOperateDate(new Date()); personFamilyInfolist.get(i).setDDentifyLostDate(null); personFamilyInfoService.merge(personFamilyInfolist.get(i)); } }catch (Exception e) { e.printStackTrace(); } } }</span>

这样,java多字段、多条数据批量添加的例子就完成了,主要要注意前台页面叠加出现多行的js函数和后台的添加和更新方法,用list接收,循环遍历进行添加。除此之外这里我想说一下下面这段代码:

复制代码 代码如下:<span>$(function(){

loadCheck();

});</span>

它就是如下代码的缩写:

复制代码 代码如下:<span> $(document).ready(function(){

loadCheck();

});</span>

其实这个代码和下面的代码是一个意思:

复制代码 代码如下:<span>window.onload=function(){

loadCheck();

}</span>

这样就不用在body的onload事件里面调用,只需要在js程序段里面编写就可以了。虽然下面的代码可以和上面两个互换,但他们之间又有不同。首先是执行时间不同,$(document).ready在页面框架下载完毕后就执行,而window.onload必须在页面全部加载完毕(包含图片下载)后才能执行。很明显前者的执行效率高于后者。再就是执行数量的不同,$(document).ready可以重复写多个,而且每次执行结果不同;而window.onload尽管可以执行多个,但仅输出最后一个执行结果,无法完成多个结果的输出。

以上就是本文的全部内容,希望对大家的学习有所帮助。

【实例讲解Java批量插入、更新数据】相关文章:

java socket编程实例代码讲解

解析Java线程同步锁的选择方法

Java批量修改文件名的实例代码

实例分析Java Class的文件结构

Java直接插入排序算法实现

Java Clone(类的复制)实例代码

代理模式之Java动态代理实现方法

LinkedList学习示例模拟堆栈与队列数据结构

quartz实现定时功能实例详解(servlet定时器配置方法)

解析java中This的用法分析

精品推荐
分类导航