最近项目中用到的数据要从一个数据源获取存进另一个数据源,简单的jdbc解决方案。

package com.sh.ideal.test.syns;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement; public class TableSyns { public static String[] TABLE={"TB_XSCJ_RWD","TB_XSCJ_HFD_CS"}; public static String[] TABLE_TARGET={"T_TEST","T_TEST1"}; public static void main(String[] args) { Connection conn = null;
Statement stmt = null;
ResultSet rs=null; Connection conn1 = null;
Statement stmt1 = null;
try {
//String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载SQLServerJDBC驱动
Class.forName("oracle.jdbc.driver.OracleDriver"); //实例化oracle数据库驱动程序(建立中间件)
String url = "jdbc:oracle:thin:@192.168.1.99:9083:PBD"; //@localhost为服务器名,sjzwish为数据库实例名
conn = DriverManager.getConnection(url, "pbd", "pbd"); //连接数据库,a代表帐户,a代表密码
stmt = conn.createStatement(); //提交sql语句,创建一个Statement对象来将SQL语句发送到数据库 String url1 = "jdbc:oracle:thin:@192.168.1.99:9083:PBD"; //@localhost为服务器名,sjzwish为数据库实例名
conn1 = DriverManager.getConnection(url1, "pbd", "pbd"); //连接数据库,a代表帐户,a代表密码
stmt1 = conn1.createStatement(); //提交sql语句,创建一个Statement对象来将SQL语句发送到数据库 for (int i = 0; i < TABLE.length; i++) { //查询数据用executeQuery
String sql="select * from "+TABLE[i];//执行查询,(ruby)为表名
rs = stmt.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
StringBuffer sbf=new StringBuffer(); for (int m = 1; m <= columnCount; m++) {
if(m==columnCount){
sbf.append(rsmd.getColumnName(m));
}else{
sbf.append(rsmd.getColumnName(m)+",");
}
}
while (rs.next()) {
StringBuffer sb=new StringBuffer();
for (int j = 1; j <= columnCount; j++) {
Object o=rs.getObject(j);
if(o==null){
o="";
}
if(j==(columnCount)){
sb.append("'"+o+"'");
}else{
sb.append("'"+o+"'").append(",");
}
}
String insertsql="insert into "+TABLE_TARGET[i]+"("+sbf.toString()+") values("+sb.toString()+")";
System.out.println(insertsql); stmt1.execute(insertsql); } //1代表当前记录的第一个字段的值,可以写成字段名。
//2代表当前记录的第二个字段的值,可以写成字段名。 //添加数据用executeUpdate
//stmt.executeUpdate("insert into ss values(7,'张学友')"); //修改数据用executeUpdate
//stmt.executeUpdate("update ss set name = '张曼玉' where id = 5"); //删除 数据用executeUpdate
//stmt.executeUpdate("delete from ss where id = 6"); } } catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}finally{
try {
//关闭数据库,结束进程
rs.close();
stmt.close();
conn.close(); stmt1.close();
conn1.close();
} catch (SQLException e) {
e.printStackTrace();
}
} }
}

不同数据源之间的数据同步jdbc解决方案的更多相关文章

  1. Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步。

    Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步. ogg要实现的功能: 同步可以细化到单个表,满足特定的where条件rows同步,称号column同步. ...

  2. SQLite与MySQL、SQLServer等异构数据库之间的数据同步

    SQLite DBSync是开源嵌入式数据库SQLite的数据同步引擎,实现了SQLite与SQLite数据库之间以及SQLite与异构数据库(Oracle.MySQL.SQLServer)之间的增量 ...

  3. RabbitMQ数据同步一致性解决方案

    1.概述 我们知道在使用RabbitMQ时,生产者将消息发布出去之后,消息是否顺利到达broker代理服务器呢?默认情况下发布操作没有任何信息返回给生产者,也就是生产者是不知道消息有没有顺利到达bro ...

  4. Windows和Linux之间 rsync数据同步

    转载于   https://www.linuxidc.com/Linux/2014-01/95722p2.htm rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——rem ...

  5. Oracle数据表之间的数据同步

    保证两个数据表结构相同,如不相同只能同步相同字段; 只是思路,具体请根据需求修改. declare cursor csrn_mon is select * from table2; row_mon c ...

  6. rsync实现windows和windows之间的数据同步

    一:环境 1.同步对象:测试数据 2.服务端:Windows Server 2008 R2 3.客户端:Windows7 旗舰版64位 4.服务端rsync版本:cwRsyncServer_4.1.0 ...

  7. PDA手持终端扫描条码开单打印一体 结合后台电脑系统 数据同步交互解决方案

    PDA通过扫描商品条码移动开单,实现便携式办公,伴随式销售,PDA能通过WIFI无线局域网.GPRS互联网直接与主机连接,让公司业务人员能随时随地了解公司产品信息,直接扫描商品条码,进行开单.入库.库 ...

  8. rsync进行不同服务器之间的数据同步

    2台服务器上都要安装rsync,sudo yum install rsync. 把远程的数据备份到本机: rsync -rP --rsh=ssh root@IP:/data/tmp /data/tmp ...

  9. 基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具(Mongo2Es)

    基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具 支持一对一,一对多,多对一和多对多的数据传输方式. 一对一 - 一个mongodb的collection对应一 ...

随机推荐

  1. listView悬浮头部的简单实现

    简而言之   为listView设置onScrollListener  当滑动时 firstVisibleItem>=要悬浮的 item的position时 让悬浮部分显示  否则隐藏 其实就是 ...

  2. 【APT】SqlServer游标使用

    use [ElephantCredit] go begin transaction tran_bank; print '**脚本开始执行!'; declare @tran_error int , @n ...

  3. webstorm打开一个门户工程流程

    1.电脑上安装了nginx   ,进入conf目录下,找到nginx.conf打开 2.将原配置中server部分替换掉 server{ listen       80;     server_nam ...

  4. istio-jaeger-spring boot调用链配置

    istio-jaeger-spring boot调用链配置 虽然,istio ingress controller已经生成了jaeger 记录所需要的信息,但是多个分布式之间没法清晰记录相互之间的依赖 ...

  5. [转]安装 Silverlight 5/silverlight4 出错的解决方法

    安装Silverlight 5时,如果 如图: 安装Silverlight 5时,如果你的VS不是英文版,那么可能会出现以下错误: Visual Studio 2010 SP1 that matche ...

  6. phpstorm的安装和使用

    1下载phpstorm #下载地址 https://www.jetbrains.com/phpstorm/ 2激活并安装 create associations 表示的是以后编辑选择的文件也默认用id ...

  7. hdu 1072(BFS) 有炸弹

    http://acm.hdu.edu.cn/showproblem.php?pid=1072 题目大意是在一个n×m的地图上,0表示墙,1表示空地,2表示人,3表示目的地,4表示有定时炸弹重启器. 定 ...

  8. node.js 进程崩溃处理

    process.on('uncaughtException', (err) => { console.error('有错误'); });

  9. 网卡驱动如何设置组播MAC地址

    参考资料: https://blog.csdn.net/abccheng/article/details/50465268 将网卡加入到组播组中.

  10. Spring ApplicationContext(六)BeanPostProcessor

    Spring ApplicationContext(六)BeanPostProcessor 产生回顾一下 ApplicationContext 初始化的几个步骤:第一步是刷新环境变量:第二步是刷新 b ...