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条数据),然后分别插入到另一个数据库中的两张表里的更多相关文章

  1. java jdbc使用SSH隧道连接mysql数据库demo

    java jdbc使用SSH隧道连接mysql数据库demo   本文链接:https://blog.csdn.net/earbao/article/details/50216999   packag ...

  2. SQLyog通过ssh隧道连接MySQL

    1.简介 因为现在很多公司服务的数据库为了安全起见,都不允许直接连接其服务,而只能通过跳板机进行登陆到数据库.而ssh有一项非常有用的功能,即端口转发的隧道功能,让一些不安全的服务,像TCP.POP3 ...

  3. mysql中造3千条数据(3种方法)

    方法一:存储过程 1.存储过程如下: delimiter $$ DROP PROCEDURE IF EXISTS data CREATE PROCEDURE data(in i int) BEGIN ...

  4. mysql 连接闪断自动重连的方法(用在后台运行中的PHP代码)

    mysql 连接闪断自动重连的方法(用在后台运行中的PHP代码)当mysql断开连接 $_instance这个还是有值得 所以会报错 MySQL server has gone away 这个地方需要 ...

  5. 实现java 中 list集合中有几十万条数据,每100条为一组取出

    解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...

  6. kettle通过SSH连接Mysql数据库(SSH隧道)

    kettle通过SSH连接Mysql数据库(SSH隧道) Kettle无法直接连接使用SSH通道的MySQL,通过SSH隧道(推荐)或者需要借助工具PuTTY(不用时需要注销不推荐),具体操作如下所示 ...

  7. mvc添加多条数据到数据库

    from : http://www.th7.cn/Program/net/201502/387849.shtml mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点 ...

  8. asp.net mvc添加多条数据到数据库

    mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点击添加按钮弹出一个框选择产品后直接添加到表单中,在表单可以自己更改产品的数量,以及一些信息.mvc表单提交的时候只 ...

  9. 取两张mysql表中分别两个字段相同的值

    看起来有点绕口吧,举个例子吧,如图 两张表,字段名也不同字段gs 和另一张表 gsmc  的有些值是相同的 我们要做的就是把这个相同的值找出来 会写这个sql语句就可以 只写重点 $sql2 = &q ...

随机推荐

  1. How to configure Gzip for JBoss?---refer

    Question: I think to try to speed up my Web App by reducing the size of transferred data. For exampl ...

  2. Python基础----函数

    1.作用域: 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 1==1: name = 'wupeiqi' print name 下面的结论对吗? 外层变量,可以被内 ...

  3. JavaScript中几个可以转化为false的值

    1.[0,NaN,“”,null,undefined]都可以直接转化为false,但这几个值不是完全相等的 var arr = [0,"",false,null,undefined ...

  4. Java字符串的10大热点问题,你都懂吗?

    转自 威哥干JAVA http://www.codingke.com 下面我为大家总结了10条Java开发者经常会提的关于Java字符串的问题,如果你也是Java初学者,仔细看看吧: 1.如何比较字符 ...

  5. hibernate注解原理

    持续更新中.. hibernate注解用的是java注解,用到的是java反射机制.

  6. 【转】深入理解Java内存模型(六)——final

    与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问.对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象 ...

  7. POJ2955:Brackets(区间DP)

    Description We give the following inductive definition of a “regular brackets” sequence: the empty s ...

  8. Linux 从 sar 到 sar2html 的认识

    这些变形的工具.诸如:淘宝的Tsar.ksar.sar2html....等.都是通过抓取 sar的数据   所以在最终呈现的数据上变化不大.只是展现的手段和效果不一样而已      sar 是帮助我们 ...

  9. 在Activity之间如何传递数据,请尽可能说出你所知道的传递数据的方法,并详细描述其实现过程。

    在Activity之间如何传递数据,请尽可能说出你所知道的传递数据的方法,并详细描述其实现过程. 答案:可以通过Intent对象.静态变量.剪切板和全局对象进行数据传递,具体的数据传递方法如下. 1. ...

  10. Java中的List(转)

    List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以Li ...