Iterator与LIstIterator接口在java中的区别有哪些
335
2023-07-30
实例讲解Java批量插入、更新数据
java的批量添加数据,多个字段同时添加多条数据,我不知道你遇到过没有。今天我们就以一个具体的实例来说一下Java的批量添加数据,面向的是Oracle数据库。
前台页面:
*
*
*
javascript函数:
后台添加方法:
/**
*
Description: 批量添加多条信息
* @param personFamilyInfoList 实体列表
* @return 布尔值,true为添加成功,否则为添加失败
* @throws Exception
* @author : gaoying
* @update :
* @date : 2015-7-20
*/
public boolean addPersonFamilyInfo(List
boolean bool = false;
if(personFamilyInfoList.size()>0 && personFamilyInfoList != null){
for(int i=0; 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; } 后台更新方法: /** * Description: 批量更新信息
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;
}
后台更新方法:
/**
*
Description: 批量更新信息
* @param personFamilyInfolist 实体列表
* @param personId 人员id
* @return 布尔值,true代表更新成功,否则更新失败
* @throws Exception
* @author : gaoying
* @update :
* @date : 2015-7-20
*/
public void updatePersonFamilyInfo(List
//根据人员id查询页面有多少条数据
List
int num = oldPersonFamilyInfolist.size();
if(personFamilyInfolist != null&&personFamilyInfolist.size() > 0){
//检查页面的信息是否有修改,然后更新到数据库
for(int i = 0; i try{ //设置一个布尔值,如果变动字段设置为false,如果不变动则设置为true boolean bool = true; //判断哪些字段更改过 if(!oldPersonFamilyInfolist.get(i).getSFamilyName().equals(personFamilyInfolist.get(i).getSFamilyName())){ http:// 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(personFamhttp://ilyInfolist.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); //更新该条数据,把系统的当前时间设为系统的生效时http://间和操作时间,是否有效设为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(); } } } 这样,java多字段、多条数据批量添加的例子就完成了,主要要注意前台页面叠加出现多行的js函数和后台的添加和更新方法,用list接收,循环遍历进行添加。除此之外这里我想说一下下面这段代码: 复制代码 代码如下: $(function(){ loadCheck(); }); 它就是如下代码的缩写: 复制代码 代码如下: $(document).ready(function(){ loadCheck(); }); 其实这个代码和下面的代码是一个意思: 复制代码 代码如下: window.onload=function(){ loadCheck(); } 这样就不用在body的onload事件里面调用,只需要在js程序段里面编写就可以了。虽然下面的代码可以和上面两个互换,但他们之间又有不同。首先是执行时间不同,$(document).ready在页面框架下载完毕后就执行,而window.onload必须在页面全部加载完毕(包含图片下载)后才能执行。很明显前者的执行效率高于后者。再就是执行数量的不同,$(document).ready可以重复写多个,而且每次执行结果不同;而window.onload尽管可以执行多个,但仅输出最后一个执行结果,无法完成多个结果的输出。 以上就是本文的全部内容,希望对大家的学习有所帮助。
try{
//设置一个布尔值,如果变动字段设置为false,如果不变动则设置为true
boolean bool = true;
//判断哪些字段更改过
if(!oldPersonFamilyInfolist.get(i).getSFamilyName().equals(personFamilyInfolist.get(i).getSFamilyName())){
http:// 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(personFamhttp://ilyInfolist.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);
//更新该条数据,把系统的当前时间设为系统的生效时http://间和操作时间,是否有效设为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();
}
}
}
这样,java多字段、多条数据批量添加的例子就完成了,主要要注意前台页面叠加出现多行的js函数和后台的添加和更新方法,用list接收,循环遍历进行添加。除此之外这里我想说一下下面这段代码:
复制代码 代码如下:
$(function(){
loadCheck();
});
它就是如下代码的缩写:
复制代码 代码如下:
$(document).ready(function(){
loadCheck();
});
其实这个代码和下面的代码是一个意思:
复制代码 代码如下:
window.onload=function(){
loadCheck();
}
这样就不用在body的onload事件里面调用,只需要在js程序段里面编写就可以了。虽然下面的代码可以和上面两个互换,但他们之间又有不同。首先是执行时间不同,$(document).ready在页面框架下载完毕后就执行,而window.onload必须在页面全部加载完毕(包含图片下载)后才能执行。很明显前者的执行效率高于后者。再就是执行数量的不同,$(document).ready可以重复写多个,而且每次执行结果不同;而window.onload尽管可以执行多个,但仅输出最后一个执行结果,无法完成多个结果的输出。
以上就是本文的全部内容,希望对大家的学习有所帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~