JDBC远程从一个MySql数据库中的一张表里面读出数据(这个数据库需要用SSH隧道连接,大约8W条数据),然后分别插入到另一个数据库中的两张表里
package com.eeepay.lzj.db; import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session; public class ChangeDB { public static int lport = 33102;//本地端口(随便取)
public static String rhost = "172.***.***.***";//远程MySQL服务器
public static int rport = 3306;//远程MySQL服务端口 public static void go() {
String user = "***";//SSH连接用户名
String password = "******";//SSH连接密码
String host = "120.132.***.***";//SSH服务器
int port = *****;//SSH访问端口
try {
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
System.out.println(session.getServerVersion());//这里打印SSH服务器版本信息
int assinged_port = session.setPortForwardingL(lport, rhost, rport);
System.out.println("localhost:" + assinged_port + " -> " + rhost + ":" + rport);
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
String mobileNo;//mobile_username
String accountName;//account_name
String accountNo;//account_no
String cnaps;//cnaps_no
String bankName;//bank_name String realName;//lawyer
int status;//open_status
String password;//mobile_password
String idCard;//id_card_no
int realNameAuth;//real_flag
Date createTime;
go();
try {
//1、加载驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//2、创建连接
Connection conn = null;
Connection conn2 = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:33102/posp", "****", "***");
conn2 = DriverManager.getConnection("jdbc:mysql://115.29.***.***:3306/bag", "****", "*****");
} catch (SQLException e) {
System.out.println("未连接上数据库");
e.printStackTrace();
}
PreparedStatement pstmt = null;
PreparedStatement pstmt2 = null;
PreparedStatement pstmt22 = null;
PreparedStatement pstmt3 = null;
try {
String sql = "select mobile_username,account_name,account_no,cnaps_no,bank_name,lawyer,open_status,mobile_password,id_card_no,real_flag,create_time from pos_merchant";
//String sql = "select * from settle_account where id=1";
String sql2 = "insert into bag_login(mobile_no,status,real_name,create_time,password,pay_password,idcard,real_name_auth) values(?,?,?,?,?,?,?,?)";
String sql22 = "select * from bag_login where mobile_no=?";
String sql3 = "insert into settle_account(mobile_no,account_name,account_no,cnaps,bank_name,create_time) values(?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt2 = conn2.prepareStatement(sql2);
pstmt22 = conn2.prepareStatement(sql22);
pstmt3 = conn2.prepareStatement(sql3);
ResultSet rs = pstmt.executeQuery();
int i=1;
while(rs.next()){
System.out.println(i++);
createTime = rs.getDate("create_time");
mobileNo = rs.getString("mobile_username");
accountName = rs.getString("account_name");
accountNo = rs.getString("account_no");
cnaps = rs.getString("cnaps_no");
bankName = rs.getString("bank_name");
realName = rs.getString("lawyer");
status = rs.getInt("open_status");
password = rs.getString("mobile_password");
idCard = rs.getString("id_card_no");
realNameAuth = rs.getInt("real_flag");
pstmt3.setString(1, mobileNo);
pstmt3.setString(2, accountName);
pstmt3.setString(3, accountNo);
pstmt3.setString(4, cnaps);
pstmt3.setString(5, bankName);
pstmt3.setDate(6, createTime);
pstmt3.execute(); pstmt22.setString(1, mobileNo);
if(!pstmt22.execute()){
pstmt2.setString(1, mobileNo);
pstmt2.setInt(2, status);
pstmt2.setString(3, realName);
pstmt2.setDate(4, createTime);
pstmt2.setString(5, password);
pstmt2.setString(6, password);
pstmt2.setString(7, idCard);
pstmt2.setInt(8, realNameAuth);
pstmt2.execute();
} } } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
pstmt.close();
conn.close();
pstmt2.close();
conn2.close();
pstmt3.close(); } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } }
JDBC远程从一个MySql数据库中的一张表里面读出数据(这个数据库需要用SSH隧道连接,大约8W条数据),然后分别插入到另一个数据库中的两张表里的更多相关文章
- java jdbc使用SSH隧道连接mysql数据库demo
java jdbc使用SSH隧道连接mysql数据库demo 本文链接:https://blog.csdn.net/earbao/article/details/50216999 packag ...
- SQLyog通过ssh隧道连接MySQL
1.简介 因为现在很多公司服务的数据库为了安全起见,都不允许直接连接其服务,而只能通过跳板机进行登陆到数据库.而ssh有一项非常有用的功能,即端口转发的隧道功能,让一些不安全的服务,像TCP.POP3 ...
- mysql中造3千条数据(3种方法)
方法一:存储过程 1.存储过程如下: delimiter $$ DROP PROCEDURE IF EXISTS data CREATE PROCEDURE data(in i int) BEGIN ...
- mysql 连接闪断自动重连的方法(用在后台运行中的PHP代码)
mysql 连接闪断自动重连的方法(用在后台运行中的PHP代码)当mysql断开连接 $_instance这个还是有值得 所以会报错 MySQL server has gone away 这个地方需要 ...
- 实现java 中 list集合中有几十万条数据,每100条为一组取出
解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...
- kettle通过SSH连接Mysql数据库(SSH隧道)
kettle通过SSH连接Mysql数据库(SSH隧道) Kettle无法直接连接使用SSH通道的MySQL,通过SSH隧道(推荐)或者需要借助工具PuTTY(不用时需要注销不推荐),具体操作如下所示 ...
- mvc添加多条数据到数据库
from : http://www.th7.cn/Program/net/201502/387849.shtml mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点 ...
- asp.net mvc添加多条数据到数据库
mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点击添加按钮弹出一个框选择产品后直接添加到表单中,在表单可以自己更改产品的数量,以及一些信息.mvc表单提交的时候只 ...
- 取两张mysql表中分别两个字段相同的值
看起来有点绕口吧,举个例子吧,如图 两张表,字段名也不同字段gs 和另一张表 gsmc 的有些值是相同的 我们要做的就是把这个相同的值找出来 会写这个sql语句就可以 只写重点 $sql2 = &q ...
随机推荐
- Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?
ThumbnailUtils.extractThumbnail(bitmap, width, height); 压缩图片到指定大小的方法,以前都是一次次的createbitmap,然后用matrix去 ...
- HibernateProxy异常处理 java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
这里使用google的Gson包做JSON转换,因为较早的1.4版本的FieldAttributes类中没有getDeclaringClass()这个方法,这个方法是获取field所属的类,在我的排除 ...
- 计算方法(一)用C#实现数值迭代
平时,经常会遇到解方程,计算方法中常用的有二分法(精度太低,迭代次数多,一般没人用),牛顿迭代法,弦截法,网上大多都是C++或者Java的实现代码,很少有C#的,我在本科毕业论文中用到了这些,那时也需 ...
- 一条insert语句批量插入多条记录
一条insert语句批量插入多条记录 常见的insert语句,向数据库中,一条语句只能插入一条数据: insert into persons (id_p, lastname , firstName, ...
- Wcf资料收集
1.简介 http://www.tuicool.com/articles/mqYB32 使用规范 http://blog.51cto.com/zt/219 2.教程系列 http://www.cnbl ...
- dsoframer组件详细使用(aspx.net)
近来由于工作需要,要求实现一个office文档在线编辑器 关于在线操作office 我是一点经验没有 网上查了半天资料 锁定了一款组件(ActiveX控件dsoframer,一个用C++实现的offi ...
- 执行oracle函数的四种方法
1.在定义函数时:如果有参数,则参数可有类型但是不加长度. 2.在执行函数: var/variable var_name var_type(如果数据类型是number则没有长度,如果数据类型是varc ...
- 武汉科技大学ACM:1005: 华科版C语言程序设计教程(第二版)例题5.8
Problem Description 老师给小豪出了一道题目:给你两个整数x和n(-10<=x<=10,1<=n<=10),让你求出x^1+x^2+x^3+……+x^n的结果 ...
- tribonacci
Everybody knows Fibonacci numbers, now we are talking about the Tribonacci numbers: T[0] = T[1] = T[ ...
- epoll模型的et模式和lt模式
http://www.cppblog.com/peakflys/archive/2012/08/26/188344.html 评论区讨论,唐诗! http://www.cnblogs.com/e ...