java 同步数据

  1 public void Sync_data(){
  2
  3     Connection ocd_query_erp = null;
  4         Connection o_to_portal=null;
  5
  6         String form_form_ocd_configuration="select org_vdc from OCD_Test";//从mysql拿对应到资源池的数据
  7         String form_erp_ocd_sql="select org_cid,vms,provider_vdc,org_vdc,cpu,ram,storage,storage_plus from OCD_Test";//从erp拿数据
  8         String portal_ocd_Insert_sql="insert into OCD_Test(org_cid,vms,provider_vdc,org_vdc,cpu,ram,storage,storage_plus) values(?,?,?,?,?,?,?,?)";
  9         String portal_ocd_Update_sql="update OCD_Test set org_cid=?,vms=?,provider_vdc=?,cpu=?,ram=?,storage=?,storage_plus=? where org_vdc =?";
 10
 11     List ocdIdList = new ArrayList();
 12
 13             PreparedStatement o_query_erp = null;
 14         PreparedStatement o_update_ocd = null;
 15         PreparedStatement o_insert_ocd = null;
 16
 17 //定义参数
 18     String org_cid="";
 19         int vms=0;
 20         String provider_vdc="";
 21         String org_vdc="";
 22         String cpu="";
 23         String ram="";
 24         int storage=0;
 25         int storage_plus;
 26
 27 //先获取到对应的数据库
 28         ocd_query_erp= this.getConnection(datasource_from[0].getDrv(), datasource_from[0].getUri(), datasource_from[0].getUid(), datasource_from[0].getPwd());
 29             o_to_portal = this.getConnection(datasource_from[0].getDrv(), datasource_from[0].getUri(), datasource_from[0].getUid(), datasource_from[0].getPwd());;
 30
 31 //预编译sql语句
 32     o_query_erp=ocd_query_erp.prepareStatement(form_erp_ocd_sql);
 33             o_update_ocd=to_portal.prepareStatement(portal_ocd_Update_sql);
 34             o_insert_ocd=to_portal.prepareStatement(portal_ocd_Insert_sql);
 35
 36         Statement o_to_portal_ = to_portal.createStatement();
 37             ResultSet ocd_configuration = o_to_portal_
 38                     .executeQuery(form_form_ocd_configuration);
 39             while (ocd_configuration.next()) {
 40                 String tmp = ocd_configuration.getString(1);
 41                 ocdIdList.add(tmp);
 42             }
 43             ocd_configuration.close();
 44             o_to_portal_.close();
 45
 46
 47 //加载数据
 48             rs_from = o_query_erp.executeQuery();
 49             if (rs_from != null) {
 50                 while (rs_from.next()) {
 51                         // select
 52                         // org_cid,vms,provider_vdc,org_vdc,cpu,ram,storage,storage_plus
 53                         // from OCD_Test
 54                         org_cid =    UI18n.getUnicode(rs_from.getString(1), "gbk");
 55                         vms = rs_from.getInt(2);
 56                         provider_vdc =    UI18n.getUnicode(rs_from.getString(3), "gbk");
 57                         org_vdc =     UI18n.getUnicode(rs_from.getString(4), "gbk");
 58                     //    org_vdc =     rs_from.getString(4), "gbk");
 59                         System.out.println(rs_from.getString(4));
 60                         System.out.println(org_vdc);
 61                         cpu = rs_from.getString(5);
 62                         ram = rs_from.getString(6);
 63                         storage = rs_from.getInt(7);
 64                         storage_plus = rs_from.getInt(8);
 65
 66                         if (!ocdIdList.contains(org_vdc)) {
 67         //    insert into OCD_Test(org_cid,vms,provider_vdc,org_vdc,cpu,ram,storage,storage_plus) values(?,?,?,?,?,?,?,?)";
 68                             o_insert_ocd.setString(1, org_cid);
 69                             o_insert_ocd.setInt(2, vms);
 70                             o_insert_ocd.setString(3, provider_vdc);
 71                             o_insert_ocd.setString(4, org_vdc);
 72                             o_insert_ocd.setString(5, cpu);
 73                             o_insert_ocd.setString(6, ram);
 74                             o_insert_ocd.setInt(7,storage);
 75                             o_insert_ocd.setInt(8, storage_plus);
 76
 77                             int result = o_insert_ocd.executeUpdate();
 78                             o_insert_ocd.clearParameters();
 79                             count_insert += result;
 80                             log.info(count_insert + "  INERT OCD_Test: org_vdc=" + org_vdc + " OK!");
 81                         } else {
 82
 83     //update OCD_Test set ,org_cid=?,vms=?,provider_vdc=?,cpu=?,ram=?,storage=?,storage_plus=? where org_vdc =?";
 84                             o_update_ocd.setString(1,org_cid );
 85                             o_update_ocd.setInt(2, vms);
 86                             o_update_ocd.setString(3, provider_vdc);
 87                             o_update_ocd.setString(4, cpu);
 88                             o_update_ocd.setString(5, ram);
 89                             o_update_ocd.setInt(6, storage);
 90                             o_update_ocd.setInt(7, storage_plus);
 91                             o_update_ocd.setString(8, org_vdc);
 92
 93                             System.out.println(o_update_ocd.toString());
 94                             count_update += o_update_ocd.executeUpdate();
 95                             log.info("UPDATE org_vdc=" + org_vdc + " OK!");
 96
 97                         }
 98                 }
 99             }
100
101
102 }
103
104 
时间: 2024-11-05 18:31:02

java 同步数据的相关文章

java 同步数据之二

前一篇文章我写得迷迷糊糊的,现在重新优化了一下.有朋友提出说为什么不在sql那边做一个存储过程呢且数据结构都是一样的?,由于技术有限,而且两张表的数据结构是差不多的,一个是在oracle 一个是在mysql 的, 1 // add by jim Sys_Ocd 2015-6-3 2 public void sysncPortal_Ocd() { 3 4 Connection ocd_query_erpConn = null; 5 Connection to_portalConn = null;

java——同步机制(synchronized, volatile)

1. java的线程间通信是由java的内存模型(JMM)来控制的. JMM(java memory management) 定义了线程和主内存之间的抽象关系,一个是主内存(多线程之间来进行共享),一个是每个线程自己的私有内存 2. 为什么需要同步机制? (1) 同步机制一般发生在多线程中,当需要跨线程维护程序的正确性,当需要多个线程之间共享非final变量时,就必须使用同步机制来保证一个线程的操作对于另一个线程是可见的 (2) 同步机制保证了多个线程之间的可靠通信,保证了多个线程之间对共享变量

Java同步机制总结--synchronized

不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对前段时间工作的总结和自我技术的条理话.JAVA中synchronized关键字能够 作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块.假如再细的分类,synchronized可作用于instance变 量.object reference(对象引用).static函数和class literals(类名称字面常量)身上. 在进一步阐述之前,我们需要明确几点: A.无论synchronized关键字加在方法上还

java post数据 给第三方URL

我曾经给服务器同步数据1.采用过FTP传送一个txt文本,然后用php 拆解. 2.用过直接链接数据库这个方案的好坏取决于1.数据库是否能对外直接链接(安全也是个问题) 2.数据库的链接效率.外面链接,总是不如本地链接速度快. 3.今天说说第三个办法,JAVA POST数据给服务器 //发送 POST 请求 String sr=HttpRequest.sendPost( "http://localhost:6144/Home/RequestPostString", "key=

java同步包种ArrayBlockingQueue类的分析与理解

前言: ArrayBlockingQueue类是一个阻塞队列,重要用于多线程操作的条件. 一,官方解释 一个建立在数组之上被BlockingQueue绑定的阻塞队列.这个队列元素顺序是先进先出.队列的头部是在队列中待的时间最长的元素.队列的尾部是再队列中待的时间最短的元素.新的元素会被插入到队列尾部,并且队列从队列头部获取元素. 这是一个典型的绑定缓冲,在这个缓冲区中,有一个固定大小的数组持有生产者插入的数据,并且消费者会提取这些数据.一旦这个类被创建,那么这个数组的容量将不能再被改变.尝试使用

Java同步锁

Java同步锁 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏.例如:两个线程ThreadA.ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据. package cn.thread; public class Foo { private int x = 100; public int getX() { return x; } public int fix(int y) { x = x - y; return x; } } package cn.thread;

Java同步—线程和进程

进程和线程 1.线程和进程的定义 进程定义:一个程序在一个数据集上的一次动态执行过程. 简单来说: 如果把进程比喻成桌子,线程比喻成人,程序比喻成吃饭. 1.单进程单线程:一个人在一个桌子上吃饭 2.单进程多线程:一堆人在一张桌子上一起吃饭 3.多进程多线程:每个人在自己的桌子上吃饭 单进程多线程的问题是:大家容易争抢,造成一些问题. 多进程多线程的问题是:各吃各的挺好,但是彼此聊天不方便. Windows:开桌子花销大,因此鼓励大家在一个桌子上吃饭,所以Windows多线程的学习重点是解决资源

使用Logstash同步数据至Elasticsearch,Spring Boot中集成Elasticsearch实现搜索

安装logstash.同步数据至ElasticSearch 为什么使用logstash来同步,CSDN上有一篇文章简要的分析了以下几种同步工具的优缺点:https://blog.csdn.net/laoyang360/article/details/51694519. 下面开始实践: 1. 下载Logstash安装包,需要注意版本与elasticsearch保持一致,windows系统下直接解压即可. 2.添加同步mysql数据库的配置,并将mysql连接驱动jar包放在指定的配置目录 注: 目

Java同步与异步

一.关键字: thread(线程).thread-safe(线程安全).intercurrent(并发的) synchronized(同步的).asynchronized(异步的). volatile(易变的).atomic(原子的).share(共享) 二.总结背景: 一次读写共享文件编写,嚯,好家伙,竟然揪出这些零碎而又是一路的知识点.于是乎,Google和翻阅了<Java参考大全>.<Effective Java Second Edition>,特此总结一下供日后工作学习参考