起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1217|回复: 0

[分享] x5建立连接并判断Oracle还是SqlServer数据库

[复制链接]

31

主题

54

帖子

336

积分

中级会员

Rank: 3Rank: 3

积分
336
QQ
发表于 2014-9-18 17:14:34 | 显示全部楼层 |阅读模式
本帖最后由 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();
                                }
                        }
                }
               
        }

评分

参与人数 1 +5 收起 理由
jishuang + 5 赞一个!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 04:44 , Processed in 0.066618 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表