不同数据源之间的数据同步jdbc解决方案
最近项目中用到的数据要从一个数据源获取存进另一个数据源,简单的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解决方案的更多相关文章
- Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步。
Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步. ogg要实现的功能: 同步可以细化到单个表,满足特定的where条件rows同步,称号column同步. ...
- SQLite与MySQL、SQLServer等异构数据库之间的数据同步
SQLite DBSync是开源嵌入式数据库SQLite的数据同步引擎,实现了SQLite与SQLite数据库之间以及SQLite与异构数据库(Oracle.MySQL.SQLServer)之间的增量 ...
- RabbitMQ数据同步一致性解决方案
1.概述 我们知道在使用RabbitMQ时,生产者将消息发布出去之后,消息是否顺利到达broker代理服务器呢?默认情况下发布操作没有任何信息返回给生产者,也就是生产者是不知道消息有没有顺利到达bro ...
- Windows和Linux之间 rsync数据同步
转载于 https://www.linuxidc.com/Linux/2014-01/95722p2.htm rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——rem ...
- Oracle数据表之间的数据同步
保证两个数据表结构相同,如不相同只能同步相同字段; 只是思路,具体请根据需求修改. declare cursor csrn_mon is select * from table2; row_mon c ...
- rsync实现windows和windows之间的数据同步
一:环境 1.同步对象:测试数据 2.服务端:Windows Server 2008 R2 3.客户端:Windows7 旗舰版64位 4.服务端rsync版本:cwRsyncServer_4.1.0 ...
- PDA手持终端扫描条码开单打印一体 结合后台电脑系统 数据同步交互解决方案
PDA通过扫描商品条码移动开单,实现便携式办公,伴随式销售,PDA能通过WIFI无线局域网.GPRS互联网直接与主机连接,让公司业务人员能随时随地了解公司产品信息,直接扫描商品条码,进行开单.入库.库 ...
- rsync进行不同服务器之间的数据同步
2台服务器上都要安装rsync,sudo yum install rsync. 把远程的数据备份到本机: rsync -rP --rsh=ssh root@IP:/data/tmp /data/tmp ...
- 基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具(Mongo2Es)
基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具 支持一对一,一对多,多对一和多对多的数据传输方式. 一对一 - 一个mongodb的collection对应一 ...
随机推荐
- css定位研究
css的定位是很重要的一个知识点,要学会网页布局,一定要先把定位弄清楚,今天抽空整理一下这方面的知识. 1.块级元素和行内元素(内联元素) 块级元素:display值为block的元素就是块级元素,比 ...
- 设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。
题目描述 设a.b.c均是0到9之间的数字,abc.bcc是两个三位数,且有:abc+bcc=532.求满足条件的所有a.b.c的值. 输入描述: 题目没有任何输入. 输出描述: 请输出所有满足题目条 ...
- 金老师的经典著作《一个普通IT人的十年回顾》
学习人生 -------一个普通IT人的十年回顾(上)序从1994到2003,不知不觉之间,我已在计算机技术的世界里沉浸了十年.有位哲人说过:如果一个人能用十年的时间专心致志地 ...
- C# json解析字符串总是多出双引号
json好久没用了,今天在用到json的时候,发现对字符串做解析的时候总是多出双引号. 代码如下: string jsonText = "{'name':'test','phone':'18 ...
- 在电脑上查看小米手机连接wifi时保存的密码
手机连接的wifi,想另一个手机也连上,密码忘了. 先备份手机的资料,然后将手机连上电脑,在SD卡上MIUI-backup-allbackup文件夹中, 找到刚才备份的文件夹 点进去找到WLAN设置. ...
- UIDataPicker 时间选择器
自用时间选择器 @interface ViewController () { UILabel *cityLabel; UIDatePicker *datePicker; } //@property(n ...
- 生成器(generator)
1. 什么是生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且, 创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元 ...
- [Python] Python教程
http://www.runoob.com/python/python-tutorial.html
- [SoapUI] 从上一个测试步骤获取ID list,通过Groovy脚本动态生成 Data Source 供后面的步骤使用
https://support.smartbear.com/readyapi/docs/testing/data-driven/types/groovy.html 从官网拷贝code到SoapUI里面 ...
- Python 反射机制
Python的反射机制 Python的反射机制,就是反射就是通过字符串的形式,导入模块:通过字符串的形式,去模块寻找指定函数,并执行.利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员 ...