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. Win32 的dll导入

    dll 文件可以导入变量,函数,和C++类,但是导入变量会使执行程序与dll紧耦合,而C++类导入则需要两个文件的开发商所用的编译器相兼容,所以做好只导入函数; 创建dll : 头文件:#ifdef  ...

  2. 配置Android开发环境

    1.下载JAVASE http://www.oracle.com/technetwork/java/javase/downloads/index.html 根据自己系统选择JAVASE版本 2.下载A ...

  3. MM32初识(兼容STM32)

    MM32初识(兼容STM32) 资源与开发环境 keil 5.0 MM32 miniboard 提要 stm32入门(MM32兼容) 点亮LED思路简介 GPIO配置 stm32寄存器理解与操作步骤 ...

  4. 95秀-dialog 进度对话框 实用工具

    工具Util public class DialogUtil {     public static ProgressDialogView progressDialog;     /**      * ...

  5. java transient关键字和transaction的区别

    transient:表示临时的,不会被持久化,保存进数据库 transaction:表示事务 <div style="background: #fff; color: #0ff;&qu ...

  6. maven第5章坐标和依赖

    5.5依赖范围 runtime:运行时依赖范围 举的例子是JDBC驱动实现,不理解? 编译的时候只需要引入jdk提供的jdbc类和方法,比如java.sql.*;这时编译没有报错,但是没有引入mysq ...

  7. Swift隐式可选型简单介绍

    /* 隐式可选型 */ // 隐式可选型同样可以赋值为nil, 而且在后面对这个变量的使用也可以不用进行解包 var value: String! = nil // print(value) 这行代码 ...

  8. PHP Directory 函数

    PHP 5 Directory 函数 函数 描述 chdir() 改变当前的目录. chroot() 改变根目录. closedir() 关闭目录句柄. dir() 返回 Directory 类的实例 ...

  9. angularjs中ng-attr的用法

    <!DOCTYPE html> <html lang="zh-CN" ng-app="app"> <head> <me ...

  10. (四 )Knockout - ViewModel 的使用3 - 对象属性变化的实时更新

    ko.observableArray()就可以自动检测属性,其实他只是监控对象,而不是对象中的属性 使用ko.observable()进行处理 DEMO1 实时更新属性 //定义user数据对象 va ...