不同数据源之间的数据同步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对应一 ...
随机推荐
- StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够 ...
- php 多进程 父进程的阻塞与非阻塞
php中进程的阻塞,主要是父进程等待子进程退出. 1.php代码如下: <?php //定义进程数量 define('FORK_NUMS', 5); //用于保存进程pid $pids = ar ...
- Spring mvc项目导出jar包无法识别正常映射问题
笔者的代码很简单,平常的配置文件,web.xml如下 <servlet> <!--名称 --> <servlet-name>springmvc</servle ...
- input,textarea在ios和Android上阴影和边框的处理方法(在移动端)
1.去掉ios上阴影的方法只需要在css文件上添加input,textarea{-webkit-appearance: none;}就可以了 2.在移动端上input和textarea边框问题,也是在 ...
- Spring Boot 2.0(三):使用 Docker 部署 Spring Boot
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目, ...
- 自己动手开启QUIC(转载)
源:https://www.bennythink.com/quic.html#title-0 今天在推上偶然发现 Google 在自己的服务器上启用了 QUIC,QUIC 这东西嘛(发音同 quick ...
- LINUX查看网卡UUID
有时我们不小心将/etc/sysconfig/network-scripts/ifcfg-eth0(可以通过此文件进行查看UUID)删除或者损坏,要重新编辑ifcfg-eth0文件时不知道网卡的UUI ...
- Java 使用jdk自带的wsimport命令生成webservice客户端代码
wsimport -s E:\workspace\givemewords\src -p com.test.service -keep http://localhost:8085/Service/Fun ...
- Behance 大神推荐2019 年所有设计领域的最新趋势!
昨天国内设计界发生了一则重大新闻! 相信大家应该都听说了吧 Behance挂了··· 继续Pinteres之后 在一个设计师不用上班的周六 我的电脑默默打不开Behance了 也就是说大陆地区的ip地 ...
- xcode如何运行下载的demo工程
1. 首先你需要改Bundle Identifier,修改成别人没注册过的. 2. 选中 “Automatically manage signing” 3. 在Team里面添加自己的个人帐号了.