mysql批量修改数据java_实例讲解Java批量插入、更新数据

Java的批量添加数据,多个字段同时添加多条数据,我不知道你遇到过没有。今天我们就以一个具体的实例来说一下Java的批量添加数据,面向的是Oracle数据库。

前台页面:

基本信息
页签1
页签2
页签3
页签4
页签5
页签6
信息展示
序号属性1属性2属性3属性4属性5属性6属性7属性8属性9操作
${st.count}

*

*

*

取消

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 ='

'

+'

'+row+''

+'

'

+'

'

+'

'

+'

'

+'

'

+''

+''

+'*

'

+'

'

+''

+''

+'*

'

+'

'

+'

'

+'

'

+'

'

+'

'

+'

'

+'

'

+'*

'

+'

'

+'

'

+'

'

+'取消'

+'

'

+'

';

$("#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("提示","保存失败");

}

}

});

}

后台添加方法:

/**

*

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: 批量更新信息

* @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())){

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();

}

}

}

这样,java多字段、多条数据批量添加的例子就完成了,主要要注意前台页面叠加出现多行的js函数和后台的添加和更新方法,用list接收,循环遍历进行添加。除此之外这里我想说一下下面这段代码:

$(function(){

loadCheck();

});

它就是如下代码的缩写:

$(document).ready(function(){

loadCheck();

});

其实这个代码和下面的代码是一个意思:

window.οnlοad=function(){

loadCheck();

}

这样就不用在body的onload事件里面调用,只需要在js程序段里面编写就可以了。虽然下面的代码可以和上面两个互换,但他们之间又有不同。首先是执行时间不同,$(document).ready在页面框架下载完毕后就执行,而window.onload必须在页面全部加载完毕(包含图片下载)后才能执行。很明显前者的执行效率高于后者。再就是执行数量的不同,$(document).ready可以重复写多个,而且每次执行结果不同;而window.onload尽管可以执行多个,但仅输出最后一个执行结果,无法完成多个结果的输出。

以上就是本文的全部内容,希望对大家的学习有所帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值