欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實(shí)例講解Java批量插入、更新數(shù)據(jù)

 更新時(shí)間:2015年07月31日 08:36:07   作者:奔跑吧呂子  
這片文章介紹了一個(gè)Java批量添加數(shù)據(jù),多個(gè)字段同時(shí)添加多條數(shù)據(jù)具體實(shí)例,面向的是Oracle數(shù)據(jù)庫,需要的朋友可以參考下

Java的批量添加數(shù)據(jù),多個(gè)字段同時(shí)添加多條數(shù)據(jù),我不知道你遇到過沒有。今天我們就以一個(gè)具體的實(shí)例來說一下Java的批量添加數(shù)據(jù),面向的是Oracle數(shù)據(jù)庫。

前臺(tái)頁面:

<span style="font-size:14px;"><body class="main_body" scroll="no"> 
<div class="employee_gun_dong"> 
  <form name="webform" method="post">   
      <div class="main_content_bg"> 
        <div class="main_content_title"> 
            <div id="baseinfo" onclick="activeTabPanel(1)" style="margin-right:2px;" class="tab1">基本信息</div> 
            <div id="semsinfo" onclick="activeTabPanel(2)" style="margin-right:2px;" class="tab1" >頁簽1</div> 
            <div id="changeinfo" onclick="activeTabPanel(3)"style="margin-right:2px;" class="tab1" >頁簽2</div> 
            <div id="familyinfo" onclick="activeTabPanel(4)" style="margin-right:2px;" class="tab1" >頁簽3</div> 
            <div id="changeinfo" onclick="activeTabPanel(5)"style="margin-right:2px;" class="tab1" >頁簽4</div> 
            <div id="familyinfo" onclick="activeTabPanel(6)" style="margin-right:2px;" class="tab1" >頁簽5</div> 
            <div id="familyinfo" onclick="activeTabPanel(7)" style="margin-right:2px;" class="tab2" >頁簽6</div> 
        </div> 
      </div> 
       
      <div class="main_content_bg" id="bankCardDiv"> 
        <div class="main_middle_bg"> 
        <div class="main_content_title">信息展示  
          <input id="addBank" type="button" value="新增一行" class="modul_button_operate" onclick="addNewRow();" /> 
        </div>                     
            <div class="main_table_bg"> 
            <table id="parttable" width='100%' border='0' cellspacing='1' cellpadding='0' class='content_table_list'>  
                <tr> 
                  <th class='content_table_number'>序號</th> 
                  <th class='content_table_thnowarp'>屬性1</th> 
                  <th class='content_table_thnowarp'>屬性2</th> 
                  <th class='content_table_thnowarp'>屬性3</th> 
                  <th class='content_table_thnowarp'>屬性4</th> 
                  <th class='content_table_thnowarp'>屬性5</th> 
                  <th class='content_table_thnowarp'>屬性6</th> 
                  <th class='content_table_thnowarp'>屬性7</th> 
                  <th class='content_table_thnowarp'>屬性8</th> 
                  <th class='content_table_thnowarp'>屬性9</th> 
                  <th class='content_table_thnowarp'>操作</th> 
                </tr> 
                <c:if test="${fn:length(personFamilyInfoList) > 0}"> 
                <c:forEach items="${personFamilyInfoList}" var="personFamilyInfoList" varStatus="st">  
                               
                <tr> 
                  <!-- 序號 --> 
                  <td class="content_table_number">${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>  
                  <!-- 屬性1--> 
                  <td class="content_table_td_centernowrap"> 
                    <input id="sFamilyName${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyName" class="content_content_input" maxlength="20" value="${personFamilyInfoList.SFamilyName}"> 
                  </td> 
                  <!-- 屬性2--> 
                  <td class="content_table_td_centernowrap"> 
                    <input id="sFamilyIdcardNo${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyIdcardNo" class="content_content_input" maxlength="20" value="${personFamilyInfoList.SFamilyIdcardNo}"> 
                  </td> 
                  <!-- 屬性3-->                   
                  <td class="content_table_td_centernowrap"> 
                    <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> 
                  <!-- 屬性4--> 
                  <td class="content_table_td_centernowrap"> 
                    <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> 
                  <!-- 屬性5-->     
                  <td class="content_table_td_centernowrap"> 
                    <input id="sFamilyInsurancePlace${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyInsurancePlace" class="content_content_input" maxlength="20" value="${personFamilyInfoList.SFamilyInsurancePlace}">   
                  </td> 
                  <!-- 屬性6--> 
                  <td class='content_table_td_centernowrap'> 
                    <input id="sFamilyResidencePalce${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyResidencePalce" class="content_content_input" maxlength="20" value="${personFamilyInfoList.SFamilyResidencePalce}"> 
                  </td> 
                  <!-- 屬性7--> 
                  <td class="content_table_td_centernowrap"> 
                    <input id="sFamilyPhone${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].SFamilyPhone" class="content_content_input" maxlength="20" value="${personFamilyInfoList.SFamilyPhone}"> 
                  </td> 
                  <!-- 屬性8--> 
                  <td class="content_table_td_centernowrap"> 
                    <input id="dDentifySucessDate${st.count-1}" type="text" name="personFamilyInfoList[${st.count-1}].DDentifySucessDate" value="${personFamilyInfoList.DDentifySucessDate}" onfocus="WdatePicker()" notnull="true" vdisp="首次參保時(shí)間" class="content_content_input" size="18" maxlength="18" style="width:70px;"/> 
                    <font color="red">*</font> 
                  </td> 
                  <!-- 屬性9--> 
                  <td class="content_table_td_centernowrap"> 
                    <input id="dDentifyLostDate${st.count-1}" type="text" name="personFamilyInfoList[${st.count - 1}].DDentifyLostDate" value="${personFamilyInfoList.DDentifyLostDate}" onfocus="WdatePicker()" notnull="true" vdisp="首次參保時(shí)間" class="content_content_input" size="18" maxlength="18" style="width:70px;"/> 
                  </td> 
                  <td class='content_table_td_centernowrap'>取消</td>   
                </tr> 
                 
                </c:forEach> 
                </c:if>                                       
              </table> 
          </div>           
        </div> 
      </div> 
      <div class="main_content_bg"> 
      <div class="main_content_title"> 
        <table style="width:100%"> 
          <tr> 
            <td width="100%" align="center"> 
              <input id="btnNextstep" type="button" value="上一步" class="modul_button_operate" onclick="" /> 
              <input id="btnAdd" type="button" value="保存" class="modul_button_operate" onclick="saveOrUpdate()" /> 
              <input id="" type="button" value="完成" class="modul_button_operate" onclick="" /> 
              <input id="btnReturn" type="button" value="返回" class="modul_button_operate" onclick="" /> 
            </td>            
          </tr> 
        </table> 
      </div> 
     </div> 
  </form>   
</div> 
</body></span> 

javascript函數(shù):

<span style="font-family:KaiTi_GB2312;font-size:14px;"><script type="text/javascript"> 
  $(function(){ 
    loadCheck(); 
  }); 
 
  function loadCheck(){ 
    var trs = $('#parttable tr').length; 
    if(trs == 1){ 
    addNewRow(); 
    } 
  } 
 
  //初始變量 
  var num = 0;//頁面計(jì)數(shù)變量 
  var row = 1;//行增加計(jì)數(shù)變量 
  var index = 2;//List列表計(jì)數(shù)變量 
  function addNewRow(){ 
    var trNum = $('#parttable tr').length; 
    if(trNum>1){ 
      row = trNum; 
      num = trNum - 1; 
    } 
    var htmlText ='<tr>' 
      +'<td class="content_table_number">'+row+'</td>' 
 
      +'<td class="content_table_td_centernowrap">' 
      +'<input id="sFamilyName'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyName" class="content_content_input" maxlength="20"></td>'  
 
      +'<td class="content_table_td_centernowrap">' 
      +'<input id="sFamilyIdcardNo'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyIdcardNo" class="content_content_input" maxlength="20"></td>' 
               
      +'<td class="content_table_td_centernowrap">' 
      +'<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 class="content_table_td_centernowrap">' 
      +'<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 class="content_table_td_centernowrap">' 
      +'<input id="sFamilyInsurancePlace'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyInsurancePlace" class="content_content_input" maxlength="20"></td>' 
       
      +'<td class="content_table_td_centernowrap">' 
      +'<input id="sFamilyResidencePalce'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyResidencePalce" class="content_content_input" maxlength="20"></td>' 
 
      +'<td class="content_table_td_centernowrap">' 
      +'<input id="sFamilyPhone'+num+'" type="text" name="personFamilyInfoList['+num+'].SFamilyPhone" class="content_content_input" maxlength="20"></td>' 
       
      +'<td class="content_table_td_centernowrap">' 
      +'<input id="dDentifySucessDate'+num+'" type="text" name="personFamilyInfoList['+num+'].DDentifySucessDate" onfocus="WdatePicker()" notnull="true" vdisp="首次參保時(shí)間" class="content_content_input" size="18" maxlength="18" style="width:70px;"/><font color="red">*</font></td>' 
 
      +'<td class="content_table_td_centernowrap">' 
      +'<input id="dDentifyLostDate'+num+'" type="text" name="personFamilyInfoList['+num+'].DDentifyLostDate" onfocus="WdatePicker()" notnull="true" vdisp="首次參保時(shí)間" class="content_content_input" size="18" maxlength="18" style="width:70px;"/></td>'     
       
      +'<td class="content_table_td_centernowrap">'      
      +'<a onclick="delInsuranceInfo(this);">取消</a>' 
      +'</td>' 
      +'</tr>'; 
    $("#parttable").append(htmlText); 
    num = num + 1; 
    row += 1; 
  } 
 
  //刪除動(dòng)態(tài)列表 
  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 style="font-family:KaiTi_GB2312;font-size:14px;"></script></span> 

后臺(tái)添加方法:

<span style="font-family:KaiTi_GB2312;font-size:14px;">/** 
   * <p>Description: 批量添加多條信息</p> 
   * @param personFamilyInfoList 實(shí)體列表 
   * @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()); 
          //設(shè)置系統(tǒng)的當(dāng)前時(shí)間為生效時(shí)間,失效時(shí)間置為空 
          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("供養(yǎng)親屬信息表 第"+i+"條信息存儲(chǔ)失??!"); 
              bool = false; 
              return bool; 
            } 
 
          } catch (Exception e) { 
            e.printStackTrace(); 
          } 
        } 
      } 
       
    } 
    return bool;     
  }</span> 

后臺(tái)更新方法:

<span style="font-family:KaiTi_GB2312;font-size:14px;">/** 
   * <p>Description: 批量更新信息</p> 
   * @param personFamilyInfolist 實(shí)體列表 
   * @param personId 人員id 
   * @return 布爾值,true代表更新成功,否則更新失敗 
   * @throws Exception 
   * @author    : gaoying 
   * @update    : 
   * @date     : 2015-7-20 
   */ 
  public void updatePersonFamilyInfo(List<PersonFamilyInfo> personFamilyInfolist, String personId) throws Exception{ 
    //根據(jù)人員id查詢頁面有多少條數(shù)據(jù) 
    List<PersonFamilyInfo> oldPersonFamilyInfolist = personFamilyInfoService.getPersonFamilyInfoByPersonId(personId); 
    int num = oldPersonFamilyInfolist.size(); 
    if(personFamilyInfolist != null&&personFamilyInfolist.size() > 0){ 
      //檢查頁面的信息是否有修改,然后更新到數(shù)據(jù)庫 
      for(int i = 0; i<num; i++){ 
        try{ 
          //設(shè)置一個(gè)布爾值,如果變動(dòng)字段設(shè)置為false,如果不變動(dòng)則設(shè)置為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("未更改前時(shí)間:"+oldPersonFamilyInfolist.get(i).getDDentifySucessDate().getTime()); 
          System.out.println("更改后的時(shí)間:"+personFamilyInfolist.get(i).getDDentifySucessDate().getTime()); 
          if(oldPersonFamilyInfolist.get(i).getDDentifySucessDate().getTime() != personFamilyInfolist.get(i).getDDentifySucessDate().getTime()){ 
            bool = false; 
          } 
           
          if(bool == false){//證明字段更改過 
            //更新數(shù)據(jù)前,要把原來沒改動(dòng)的數(shù)據(jù)復(fù)制一條,添加進(jìn)數(shù)據(jù)庫,把系統(tǒng)的當(dāng)前時(shí)間設(shè)為該條數(shù)據(jù)的失效時(shí)間         
            PersonFamilyInfo personFamilyInfo = new PersonFamilyInfo(); 
             
            BeanUtils.copyProperties(oldPersonFamilyInfolist.get(i), personFamilyInfo); 
            System.out.println("該條數(shù)據(jù)主鍵:" + personFamilyInfo.getSGuid()); 
            personFamilyInfo.setSGuid(UUIDHexGenerator.getUUID()); 
            System.out.println("設(shè)置主鍵:" + personFamilyInfo.getSGuid()); 
            personFamilyInfo.setDOperateDate(new Date()); 
            //將當(dāng)前保存數(shù)據(jù)庫的是否有效置為1:無效 
            personFamilyInfo.setIsEnable(1); 
            personFamilyInfo.setDDentifyLostDate(new Date());             
             
            personFamilyInfoService.save(personFamilyInfo); 
             
            //更新該條數(shù)據(jù),把系統(tǒng)的當(dāng)前時(shí)間設(shè)為系統(tǒng)的生效時(shí)間和操作時(shí)間,是否有效設(shè)為0:有效,失效時(shí)間為空 
            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多字段、多條數(shù)據(jù)批量添加的例子就完成了,主要要注意前臺(tái)頁面疊加出現(xiàn)多行的js函數(shù)和后臺(tái)的添加和更新方法,用list接收,循環(huán)遍歷進(jìn)行添加。除此之外這里我想說一下下面這段代碼:

復(fù)制代碼 代碼如下:
<span style="font-family:KaiTi_GB2312;font-size:14px;">$(function(){ 
    loadCheck(); 
});</span>  
  

它就是如下代碼的縮寫:

復(fù)制代碼 代碼如下:
<span style="font-family:KaiTi_GB2312;font-size:14px;"> $(document).ready(function(){ 
        loadCheck(); 
});</span> 

其實(shí)這個(gè)代碼和下面的代碼是一個(gè)意思:

復(fù)制代碼 代碼如下:
<span style="font-family:KaiTi_GB2312;font-size:14px;">window.onload=function(){ 
       loadCheck(); 
}</span>
   

這樣就不用在body的onload事件里面調(diào)用,只需要在js程序段里面編寫就可以了。雖然下面的代碼可以和上面兩個(gè)互換,但他們之間又有不同。首先是執(zhí)行時(shí)間不同,$(document).ready在頁面框架下載完畢后就執(zhí)行,而window.onload必須在頁面全部加載完畢(包含圖片下載)后才能執(zhí)行。很明顯前者的執(zhí)行效率高于后者。再就是執(zhí)行數(shù)量的不同,$(document).ready可以重復(fù)寫多個(gè),而且每次執(zhí)行結(jié)果不同;而window.onload盡管可以執(zhí)行多個(gè),但僅輸出最后一個(gè)執(zhí)行結(jié)果,無法完成多個(gè)結(jié)果的輸出。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論