簡體   English   中英

如何使用Java在Oracle中插入序列化數據

[英]How to insert serialize data in Oracle using java

我有一些列表值從數據庫中獲取,並已選中和未選中(1或0)保存此值

我的HTML標記是:

  <div class="panel-body">
  <form action="" id = "buindEligibilityData">
    <table class="table">
        <s:iterator value="eligibilityList" status="status">
         <s:if test='%{lkpGroupId == "160100000005"}'>
            <tr id="eligibilityTrDiv">
         <td><input type="hidden" value="160100000005" name="gropuId"></td><td><input type="hidden" value="<s:property value='lkpDataName' />" name="lkpName"></td> <td><input type="hidden" value="<s:property value='lkpDataId' />" name="lkpDataId"></td><td > <s:property value='lkpDataName' /></td>
          <td> <div class="example"><div>
          <s:if test='%{chackBoxStatus == "1"}'>
          <input value="1" id="hid_<s:property value='lkpDataId' />" type="hidden" name="checkbox1"/>
          <input id="<s:property value='lkpDataId' />" class="chackBoxIdPrefix" type="checkbox" name="lkpDataIdcheckbox"  checked="checked">

          </s:if>
          <s:else>
          <input value="0" id="hid_<s:property value='lkpDataId' />" type="hidden" name="checkbox1"/>
           <input id="<s:property value='lkpDataId' />" class="chackBoxIdPrefix" type="checkbox" name="lkpDataIdcheckbox" >

          </s:else>
          <label for="checkbox2"><span></span>bind For Prefix</label></div></div></td>
          </tr>
        </s:if>
     </s:iterator>

        <tr><td colspan="3" align="center"> <input type="button" value="Save Change" class="btn-info" align="middle" onclick="buindDataForPrefix()"> </td></tr>
          </table>
    </form>
  </div>

onclick函數:

function buindDataForPrefix() {     
    var form_data = $jq("#buindEligibilityData").serialize();

    $jq.ajax({
                    type: 'post',
                    data:form_data, 
                    mimeType:"multipart/form-data",                 
                    url: "buindEligibilityDataAdmissionInfo.do",
                    success: function(data){                        
                        $jq("#eligibilityTrDiv").html(data);                                                            
                    },
                    complete: function(data){   

                    }                       
          });
}

Java代碼:

 public String buindEligibilityData() {
    String[] logInInfo = (String[]) ActionContext.getContext().getSession()
            .get(sessionVariable.getUserLogInInfo());
    String doctorEmpId = logInInfo[1].toString();
    String companyNo = logInInfo[4].toString();
    String getLkpDataIdPrefix = (String) ActionContext.getContext().getSession().get(sessionVariable.getLkpPrefixDataId());

    System.out.println(lkpDataId);
    System.out.println(lkpDataIdcheckbox);
    String lkpDataIdArr[]=lkpDataId.split(",");
    String lkpDataIdcheckboxArr[]=lkpDataIdcheckbox.split(","); 
    System.out.println(lkpDataIdArr.length);
    System.out.println(lkpDataIdcheckboxArr.length);
    System.out.println("lkpDataIdPrefixpp"+getLkpDataIdPrefix);
    System.out.println("gropuId"+gropuId);


    patientProgressNoteSql.savebuindEligibilityData(gropuId, getLkpDataIdPrefix ,lkpDataId, lkpDataIdcheckbox, companyNo , doctorEmpId, lkpName);
    return "buindEligibilityData";
}

SQL代碼:

public Long savebuindEligibilityData(String LKPGRP_ID, String LKPDATA_ID_PREFIX, String LKPDATA_ID, String CHACK_STATUS, String COMPANY_NO, String CREATED_BY, String lkpName) {

    Long rowInserted = (long) 0;

    boolean fg = true;
    connection = dbConnection.connectDB();

    if (connection == null) {
        fg = false;
    }
    if (fg) {
        try {
            st = connection.createStatement();
            String insertQuery = "";
            String insertQuery2 ="";    
            Long PK_NOa = generatedSequenceNumber("SEQ_SA_PREFIX_SETUP", COMPANY_NO);

            for (int i = 0; i < CHACK_STATUS.length(); i++) {

                String lkpDataIdcheckboxArr[] = CHACK_STATUS.split(",");
                String LKPGRP_IDArr[] = LKPGRP_ID.split(",");
                String LKPDATA_ID_PREFIXArr[] = LKPDATA_ID_PREFIX.split(",");
                String LKPDATA_IDArr[] = LKPDATA_ID.split(",");
                //String lkpNameArr[] = lkpName.split(",");

                if(lkpDataIdcheckboxArr[i].trim().equals("1")){

                    String PK_NO = generatedSequence("", "SEQ_HPMSINTAKEOUTPUT",
                            "D", "1", "Y");
                    insertQuery = "INSERT INTO SA_PREFIX_SETUP (LKPGRP_ID, COMPANY_NO, PREFIX_SETUP_ID,  CREATED_BY, LKPDATA_ID_PREFIX, LKPDATA_ID, CREATED_DT, CHACK_STATUS "
                            + ")values('"
                            + LKPGRP_IDArr[i]
                            + "','"
                            + COMPANY_NO
                            + "',"
                            + PK_NOa
                            + ",'"
                            + CREATED_BY
                            + ",'"
                            + LKPDATA_ID_PREFIXArr[i]
                            + ",'"
                            + LKPDATA_IDArr[i]

                            + "',sysdate,'"

                            + lkpDataIdcheckboxArr[i] + "')";       

                }       
            }

            System.out.println(insertQuery);                
            st.executeUpdate(insertQuery);

        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            try {
                st.close();
                connection.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }

    return rowInserted;
}

循環從0迭代到CHACK_STATUS的長度(這是一個字符串)

 for (int i = 0; i < CHACK_STATUS.length(); i++)

然后在循環中,將這一過程拆分為元素表

String lkpDataIdcheckboxArr[] = CHACK_STATUS.split(",");

然后代碼從這里的表中檢索值:

if(lkpDataIdcheckboxArr[i].trim().equals("1")){

還有這里:

  + lkpDataIdcheckboxArr[i] + "')";     

現在假設CHACK_STATUS =“ 1,0,1”

該變量的長度為:CHACK_STATUS.length()= 5。

如果您拆分此字符串: lkpDataIdcheckboxArr[] = CHACK_STATUS.split(",")您將獲得一個包含3個元素的表: lkpDataIdcheckboxArr[] = {"1","0","1"}

現在循環在迭代(i <5):0 ... 1 ... 2 .... 3

BANG - if(lkpDataIdcheckboxArr[i].trim().equa...
因為lkpDataIdcheckboxArr只有3個元素[0],[1]和[2],所以i = 3會引發IndexOutOfBoundException ,元素[3]不存在!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM