向java list存入数据库库中导入一个值和list,是不是重复导入那个值直到list全部导入完毕

Java中List 去掉重复的值
大家感兴趣的内容
1 2 3 4 5 6 7 8 9 10
本月热门的内容
1 2 3 4 5 6 7 8 9 10问题:java开发,excel数据导入数据库,如何在插入重复数据或则是不正确数据时候,不中断,继续执行后面的数据导入操作
描述: java开发,excel数据导入数据库,如何在插入重复数据或则是不正确数据时候,不中断,继续执行后面的数据导入,在执行结束后,生成执行结果页面(增加执行结果:成功or失败,错误原因2个列)
原功能实现
1读取excel到list
2循环list数据PreparedStatement,执行insert操作 解决方案1: 其实你已经把逻辑都描述出来了;
读execl数据 - 校验
if 校验结果 ok insert
else add to map(或临时表,取决于数据量)
然后将map或临时表中的数据做展现就可以了,因为这里边就是所有校验不合法的数据集合 解决方案2:引用来自“天兵仔”的答案 &&&&可以建立一个临时表,用来存储数据,数据不管是否重复直接存储。程序用来检查数据格式,不符合的全部输出到log,符合的存储进临时表。
& & 然后在临时表里面去重复数据,检查log,修正错误数据等。最后导入。 解决方案3: 我的方案是这个样的:
1,解决重复数据和不正常数据问题 将从EXCEL读取的数据校验正确放入Map,Key为数据库唯一值,比如说商品编号之类,Value放实体类.
2,第二步就是循环遍历数据Insert了,如果你采用JDBC的话,就直接Insert数据是不是存在数据库中.其实如果是用框架的话,建议采用HibernateTemple.saveOrUpdateAll(Collection),查询记录已经存在,剔除该条新增. 解决方案4: &&&&可以建立一个临时表,用来存储数据,数据不管是否重复直接存储。程序用来检查数据格式,不符合的全部输出到log,符合的存储进临时表。
& & 然后在临时表里面去重复数据,检查log,修正错误数据等。最后导入。 解决方案5: 1.定义一个StringBuffer来存放执行结果
2.循环读取excel中的数据,并做校验,并把校验结果放到StringBuffer中
3.把校验通过的数据分为一个新增的list和修改的list。如果数据大的话,每读取指定数量的数据就把两个list的数据存到数据库中。
以上介绍了“java开发,excel数据导入数据库,如何在插入重复数据或则是不正确数据时候,不中断,继续执行后面的数据导入操作”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:/itwd/1225951.html
上一篇: 下一篇:您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
在Access数据库中导入和导出一般文件.doc 6页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:150 &&
你可能关注的文档:
··········
··········
在Access数据库中导入和导出一般文件●创建MFC基于对话框程序项目filetomdb插入一个ListBox控件IDC_LISTFILENAME(显示数据库中文件名字段内容),一个编辑控件IDC_EDITFILENAME(显示在列表框中选择的文件名,以后可以用来修改文件名),两个按钮控件导入IDC_BUTTONIN和导出IDC_BUTTONOUT。使用类向导为列表框绑定一个控件型变量m_list。在工作区文件夹准备数据库文件db1.mdb,包含filemdb表,包含三个字段filename(文本),filedata(ole对象),pr_info(备注)在CFiletomdbDlg类加入下面两个成员变量_RecordsetPtrpRstPubI_ConnectionPtrpC●在stdafx.h文件加入下面命令:#import&c:\ProgramFiles\CommonFiles\System\ADO\msado15.dll&no_namespacerename(&EOF&,&EndOfFile&)#defineChunkSize100inlinevoidTESTHR(HRESULTx){ifFAILED(x)_com_issue_error(x);};●在CFiletomdbDlg类初始化OnInitDialog()函数加入下面代码: if(FAILED(::CoInitialize(NULL)))return0; _bstr_tstrCnn(&Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.UserID=AJetOLEDB:DatabasePassword=1234&); try {
pConnection.CreateInstance(&ADODB.Connection&);
hr=pConnection-&Open(strCnn,&&,&&,adConnectUnspecified); } catch(_com_errore) {
errormessage.Format(&连接数据库失败:%s&,e.ErrorMessage());
AfxMessageBox(errormessage); } try {
pRstPubInfo.CreateInstance(__uuidof(Recordset));
pRstPubInfo-&Open(&SELECT*FROMfilemdb&,pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); } catch(_com_errore) {
errormessage.Format(&打开数据表失败%s&,e.ErrorMessage());
AfxMessageBox(errormessage); } while(!pRstPubInfo-&EndOfFile) {
_variant_ttheV
theValue=pRstPubInfo-&GetCollect(&filename&);
if(theValue.vt!=VT_NULL)
fname=(char*)_bstr_t(theValue);
m_list.AddString(fname);
pRstPubInfo-&MoveNext(); }●使用类向导在CFiletomdbDlg处理WM_DESTROY消息(销毁窗口对象)voidCFiletomdbDlg::OnDestroy(){ CDialog::OnDestroy(); pRstPubInfo-&Close();pConnection-&Close(); ::CoUninitialize(); }●使用类向导在CFiletomdbDlg类处理LBN_SELCHANGE消息,代码如下:voidCFiletomdbDlg::OnSelchangeListfilename(){ CS inti=m_list.GetCurSel(); m_list.GetText(i,t); SetDlgItemText(IDC_EDITFILENAME,t
正在加载中,请稍后...java开发,excel数据导入数据库,如何在插入重复数据或则是不正确数据时候,不中断,继续执行后面的数据导入,在执行结束后,生成执行的excel表格,excel表格中显示未插入成功的数据
java开发,excel数据导入数据库,如何在插入重复数据或则是不正确数据时候,不中断,继续执行后面的数据导入,在执行结束后,生成执行的excel表格(增加执行结果:成功or失败,错误原因2个列),excel表格中显示未插入成功的数据
原功能实现
1读取excel到list
2循环list数据PreparedStatement,执行insert操作
在list里面加try catch
不中断的方法前面的说了,由于异常引起的中断你cache下异常就可以继续往下走了,然后cache的代码里面把出问题的数据记录下就ok,随意记录到哪里,内存,文件都可以,最后整个excel读完再处理这部分数据
在for循环的时候把数据处理的异常自己捕获处理掉1017人阅读
C#编程技术(46)
protected void ImportData(string filePath)
if (filePath.Length == 0)
MessageBox.Show(&请选择要导入的txt文件&);
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
using (StreamReader sr = new StreamReader(fs))
//不读第一行的标题咧
sr.ReadLine();
string row_text = &&;
string Exceptions = &&;
List&string& sqlList = new List&string&();
while ((row_text = sr.ReadLine()) != null)
string[] datas = row_text.Split(',');
string sql = &insert into room (roomid,typeids,price,status,isdeleted ) values ('& + datas[0] + &',& + datas[1] + &,& + datas[2] + &,& + datas[3] + &,& + datas[4] + &)&;
sqlList.Add(sql);
DBUtil.ExSqlList(sqlList, out Exceptions);
MessageBox.Show(&导入数据成功,共导入行数:& + sqlList.Count.ToString());
catch (Exception ex)
Exceptions = ex.Message.ToString();
MessageBox.Show(&导入数据出错,错误信息:& + Exceptions);
}下面给出向数据库中批量插入数据的DBUtil中的ExSqlList方法
public static bool ExSqlList(List&string & sqlList,out string exceptions)
exceptions = &&;
bool isSuccess =
using (SqlConnection conn = new SqlConnection(sqlconn))
conn.Open();
SqlCommand cmd = new SqlCommand();
SqlTransaction trans = conn.BeginTransaction();
cmd.Connection =
cmd.Transaction =
foreach (string sql in sqlList)
mandText =
cmd.ExecuteNonQuery();
catch (Exception ex)
isSuccess =
trans.Rollback();
exceptions = ex.Message.ToString();
throw new ApplicationException(exceptions);
return isS
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:41675次
积分:1026
积分:1026
排名:千里之外
原创:62篇
(2)(1)(4)(2)(1)(8)(6)(6)(10)(23)}

我要回帖

更多关于 list保存到数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信