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. Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37730469 在上一篇博客中,我们成功把地图导入了我们的项目.本篇我们准备为地图 ...

  2. JNI Java调用C代码 示例

    Activity public class MainActivity extends ListActivity {     static {         System.loadLibrary(&q ...

  3. spring-qualifier解释

    如果一个class有两个对应的beanId,在Autowired的时候,必须指定Qualifier("指定其中一个beanId"). org.springframework.bea ...

  4. Navicat:cant create OCI environment.

    一直在使用 Navicat ,这是一个数据库客户端软件,能连接多种不同类型的数据库,给我们的日常的工作带来了不少的便捷. 最近,我在电脑上安装了oracle的客户端ODTwihtODAC121012, ...

  5. Namespace declaration statement has to be the very first

    Namespace declaration statement has to be the very first statement in the script 我新建了一个Homea模块,并把Hom ...

  6. java获取字符串格式日期向前或向后n天的日期

    private void setTilteMessage(){          BaseDao dao = new BaseDao();          String titleData = da ...

  7. .net中Web.config文件的基本原理及相关设置

    11.7  使用web.config配置文件 Web配置文件web.config是Web 应用程序的数据设定文件,它是一份 XML 文件,内含 Web 应用程序相关设定的 XML 标记,可以用来简化  ...

  8. 关于导出oracle多个表的建表语句DLL,生成.sql语句。

    --('TABLE','LINE','ODS_XX')这里面的表和用户都需要大写.如果表名用户名不大写会报这个错误:对象 "emp" 属于类型 TABLE, 在方案 "s ...

  9. 1202.2——Xcode部分快捷键

    Ctrl+N(Next)  光标跳到下一行 Ctrl+P(Previous)   光标跳到上一行 Ctrl+B(Back) 光标向左边移动一个字符 Ctrl+F(Forward)   光标向右边移动一 ...

  10. QT 5.1.1 for Android 开发环境搭建与配置【Windows 7】

    前言:本人操作系统为Windows7 64位,用的是32位的安装包,32位系统没有验证. 一.首先下载以下安装包,如果提供的链接失效请自行下载: (1) Android SDK (Windows 32 ...