|
本帖最后由 bingbing4647 于 2014-9-19 09:54 编辑
/**
* 导入数据表1
*/
public static void importData(String filepatch){
Connection conn=null;
Statement state = null;
ResultSet rs =null;
ResultSet rs2 =null;
try {
conn = ModelUtils.getConnection("/OA/geologySurvey/data");
String sql = "";
state = conn.createStatement();
String typeName = null;
DatabaseMetaData db = conn.getMetaData();
typeName = db.getDatabaseProductName();
SAXReader reader = new SAXReader();
Document doc = reader.read(new File(filepatch));
Element root = doc.getRootElement();
for (Iterator rootIt = root.elementIterator(); rootIt.hasNext();) {
//获取子节点tabControl
Element tabControl = (Element) rootIt.next();
Attribute tabContrAtt=tabControl.attribute("name");
//获取//table节点
JSONObject jsonObject = new JSONObject();
for(Iterator tabControlIt=tabControl.elementIterator();tabControlIt.hasNext();){
Element tables = (Element) tabControlIt.next();
Attribute tablesAttrValue=tables.attribute("name");
//获取row节点
JSONArray jsonarr = new JSONArray();
for(Iterator rowIt=tables.elementIterator();rowIt.hasNext();){
Element rows = (Element) rowIt.next();
//获取data节点
JSONObject row = new JSONObject();
String sqlName= "";
String sqlValue="";
for(Iterator dataIt=rows.elementIterator();dataIt.hasNext();){
Element datas = (Element) dataIt.next();
Attribute dataAttrName=datas.attribute("name");
Attribute dataAttrValue=datas.attribute("value");
row.put(dataAttrName.getValue(), dataAttrValue.getValue());
String name=dataAttrName.getValue();
String value =dataAttrValue.getValue();
if("Oracle".equalsIgnoreCase(typeName)){
//遍历生成sql
if("ZJRQ".equals(name)||"DCRQ".equals(name)||"KZRQ".equals(name)||"DCSHRQ".equals(name)){
value="to_date('"+value+"','yyyy-MM-dd')";
sqlName=sqlName+","+ name;
sqlValue=sqlValue+", "+value+"";
}else{
sqlName=sqlName+","+ name;
sqlValue=sqlValue+", '"+value+"'";
}
}else if("Microsoft SQL Server".equalsIgnoreCase(typeName)){
//遍历生成sql
if("ZJRQ".equals(name)||"DCRQ".equals(name)||"KZRQ".equals(name)||"DCSHRQ".equals(name)){
value="convert(varchar(100),'"+value+"',120)";
sqlName=sqlName+","+ name;
sqlValue=sqlValue+", "+value+"";
}else{
sqlName=sqlName+","+ name;
if("".equals(value)){
sqlValue=sqlValue+",null";
}else{
sqlValue=sqlValue+", '"+value+"'";
}
}
}
}
jsonarr.add(row.toString());
String FID = CommonUtils.createGUID();
//生成总的sql语句
sql = "insert into "+tablesAttrValue.getValue()
+ "(fid,version"+sqlName+")"
+ " values('"+FID+"',0"+sqlValue
+")";
System.out.println(sql);
//更新本地数据库
state.executeUpdate(sql);
}
jsonObject.put(tablesAttrValue.getValue(),jsonarr);
}
Map< String, String> param = new HashMap<String, String>();
param.put("data", URLEncoder.encode(jsonObject.toString(), "utf-8"));
//同步提交数据
try {
props.load(GeologySurvey.class.getResourceAsStream("config.properties"));
} catch (IOException e1) {
e1.printStackTrace();
}
String result =doPost(props.getProperty("doPost").trim(), param, "utf-8", true);
System.out.println(result);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(rs2!=null){
try {
rs2.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(state!=null){
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
|
评分
-
查看全部评分
|