首页 / XML / 分30条依次解析xml并插入数据库成功
分30条依次解析xml并插入数据库成功
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了分30条依次解析xml并插入数据库成功,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2297字,纯文字阅读大概需要4分钟。
内容图文
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
|
package xxx;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import xxx.hf.jdbc.StoreIntoMysql;
/*
* 解析30条后插入到数据,然后继续插入
*
* */
public
class
XmlToMysql {
private
Document doc =
null
;
public
XmlToMysql(String xmlFile) {
try
{
SAXReader reader =
new
SAXReader();
doc = reader.read(xmlFile);
}
catch
(Exception e) {
e.printStackTrace();
}
}
/*
* 返回解析到的元素个数
*/
public
int
getInfos(String str, String sds) {
// str ="Patient";
ArrayList<String[]> infos =
new
ArrayList<String[]>();
// 标识是最后的30条记录或者不足30条
boolean last =
false
;
// 获得所有str元素
List strs = doc.selectNodes(
"//"
+ str);
System.
out
.println(strs.size());
// System.exit(0);
// 遍历指定的所有元素
for
(
int
j = 0; j < strs.size(); j++) {
Element eAdd = ((Element) strs.
get
(j));
// 遍历指定元素的子元素
String[] strArray =
null
;
if
(str.
equals
(
"Patient"
)) {
strArray =
new
String[16];
}
else
{
strArray =
new
String[15];
}
int
m = 0;
for
(Iterator i = eAdd.elementIterator(); i.hasNext();) {
Element node = (Element) i.next();
// System.out.println(node.getName() + ":" + node.getText());
// 处理特别的字符串
if
(node.getText().indexOf(
":"
) > 0) {
// 这里处理时间问题,插入datetime不会出错
strArray[m] = node.getText().toString().substring(0, 19)
.replace(
"T"
,
" "
);
}
else
{
strArray[m] = node.getText().toString();
}
m++;
}
infos.add(strArray);
// 判断是否到达最后1条记录
if
(j == (strs.size() - 1)) {
System.
out
.println(
"这是最后一条记录"
);
System.
out
.println(j);
// 设置标识
last =
true
;
}
// 如果集合的长度有30条,就commit一次
// 或则是最后一条记录的时候
if
(infos.size() >= 30 || last) {
// 存入数据库
if
(str.
equals
(
"Patient"
)){
StoreIntoMysql.StorePatient(infos, sds + str);
}
else
{
StoreIntoMysql.StoreTreat(infos, sds + str);
}
// 集合清空
infos.clear();
}
}
return
strs.size();
}
}
|
主要的问题是在于,最后的30条或不足30条。
这里采用的一个变量来判断
这里发现的问题是:集合的清空,我用的clear方法,但是手册中提示过时了,removeAll() 方法没看懂怎么用
原文:http://www.cnblogs.com/jsRunner/p/3566506.html
内容总结
以上是互联网集市为您收集整理的分30条依次解析xml并插入数据库成功全部内容,希望文章能够帮你解决分30条依次解析xml并插入数据库成功所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。