[英]How to insert serialize data in Oracle using java
I have some list value get from database and saved this value with checked and unchecked (1 or 0) 我有一些列表值从数据库中获取,并已选中和未选中(1或0)保存此值
My HTML markup is: 我的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: 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 code: 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 code: 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;
}
The loop iterates from 0 to a length of CHACK_STATUS
(which is a string) 循环从0迭代到
CHACK_STATUS
的长度(这是一个字符串)
for (int i = 0; i < CHACK_STATUS.length(); i++)
then inside the loop this tring is splitted into a table of elements 然后在循环中,将这一过程拆分为元素表
String lkpDataIdcheckboxArr[] = CHACK_STATUS.split(",");
and then the code is retrieving value from this table here: 然后代码从这里的表中检索值:
if(lkpDataIdcheckboxArr[i].trim().equals("1")){
and also here: 还有这里:
+ lkpDataIdcheckboxArr[i] + "')";
Now imagine that CHACK_STATUS = "1,0,1" 现在假设CHACK_STATUS =“ 1,0,1”
A length of this variable is: CHACK_STATUS.length() = 5. 该变量的长度为:CHACK_STATUS.length()= 5。
If you split this string: lkpDataIdcheckboxArr[] = CHACK_STATUS.split(",")
you will get a table with 3 elements: lkpDataIdcheckboxArr[] = {"1","0","1"}
如果您拆分此字符串:
lkpDataIdcheckboxArr[] = CHACK_STATUS.split(",")
您将获得一个包含3个元素的表: lkpDataIdcheckboxArr[] = {"1","0","1"}
Now the loop is iterating ( i < 5) : 0 ... 1 ... 2 .... 3 现在循环在迭代(i <5):0 ... 1 ... 2 .... 3
and BANG - if(lkpDataIdcheckboxArr[i].trim().equa...
和BANG -
if(lkpDataIdcheckboxArr[i].trim().equa...
for i=3 throws IndexOutOfBoundException
because lkpDataIdcheckboxArr has only 3 elements [0], [1] and [2], the element [3] does not exists ! 因为lkpDataIdcheckboxArr只有3个元素[0],[1]和[2],所以i = 3会引发
IndexOutOfBoundException
,元素[3]不存在!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.