实例讲解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 personFamilyInfoList) throws Exception{

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 personFamilyInfolist, String personId) throws Exception{

//根据人员id查询页面有多少条数据

List oldPersonFamilyInfolist = personFamilyInfoService.getPersonFamilyInfoByPersonId(personId);

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小时内删除侵权内容。

上一篇:利用java实现单词倒序排列
下一篇:使用Java代码来比较Android客户端版本号
相关文章

 发表评论

暂时没有评论,来抢沙发吧~