Java的批量添加数据,多个字段同时添加多条数据,我不知道你遇到过没有。今天我们就以一个具体的实例来说一下Java的批量添加数据,面向的是Oracle数据库。
前台页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
< 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 = "首次参保时间" 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 = "首次参保时间" 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函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
<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; //页面计数变量
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 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="首次参保时间" 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="首次参保时间" 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;
}
//删除动态列表
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>
|
后台添加方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<span style= "font-family:KaiTi_GB2312;font-size:14px;" > /**
* <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>
|
后台更新方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<span style= "font-family:KaiTi_GB2312;font-size:14px;" > /**
* <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 style="font-family:KaiTi_GB2312;font-size:14px;">$(function(){
loadCheck();
});</span>
loadCheck();
});</span>
它就是如下代码的缩写:
复制代码 代码如下:
<span style="font-family:KaiTi_GB2312;font-size:14px;"> $(document).ready(function(){
loadCheck();
});</span>
loadCheck();
});</span>
其实这个代码和下面的代码是一个意思:
复制代码 代码如下:
<span style="font-family:KaiTi_GB2312;font-size:14px;">window.onload=function(){
loadCheck();
}</span>
loadCheck();
}</span>
这样就不用在body的onload事件里面调用,只需要在js程序段里面编写就可以了。虽然下面的代码可以和上面两个互换,但他们之间又有不同。首先是执行时间不同,$(document).ready在页面框架下载完毕后就执行,而window.onload必须在页面全部加载完毕(包含图片下载)后才能执行。很明显前者的执行效率高于后者。再就是执行数量的不同,$(document).ready可以重复写多个,而且每次执行结果不同;而window.onload尽管可以执行多个,但仅输出最后一个执行结果,无法完成多个结果的输出。
以上就是本文的全部内容,希望对大家的学习有所帮助。