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 ...
随机推荐
- linux vim 个性化设置(.vimrc)
set sw=4 set ts=4 set et set smarttab set smartindent set lbr set fo+=mB set sm set ...
- git pull 代码很慢的问题
办公环境调整,之前开发机是和自己的电脑放同一网段内的,现在开发机放至到本地其他网段内,造成pull 代码很慢的问题,在网上查了一下 以下是原文,链接为 http://blog.sina.com.cn/ ...
- 简单题思维转化BestCoder
题意:给你a, b, c, d四个数,这几个数的范围都是大于0小于1000的整数,让比较 a ^b 和 c ^ d的大小. 这道题看着特别简单,但是当时就是做不出来,将近一个月没有做题了,手生了,不过 ...
- 让页脚footer永远固定在页面的底部,而不是永远固定在显示器屏幕的底部的方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ICSharpCode.SharpZipLib实现压缩解压缩
最近,在项目中经常需要处理压缩和解压缩文件的操作.经过查找,发现了ICSharpCode.SharpZipLib.dll ,这是一个完全由c#编写的Zip, GZip.Tar . BZip2 类库,可 ...
- css空格和去浮动的应用
今天做了项目用到css,请教前端解决,第一个是记得css空格之间的关系是隶属关系,但是在元素中却是并列关系,如<div class="right_side_item_moban gra ...
- ASP.Net页面间传值
一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交, <form action= "target.aspx" method = "post&qu ...
- mvc wcf 并发提示,存储Application,验证是否有用户在操作
System.Web.HttpContext httpContext = System.Web.HttpContext.Current; Hashtable departmentSalary = (H ...
- 重新认识Swift中的可选型(Swift2.1)
//: Playground - noun: a place where people can play import UIKit /* Swift中nil代表是是另外一种类型, 而不像OC那样, 任 ...
- 侧滑RESideMenu的使用
MainTabBarViewController *mainCtrl = [[MainTabBarViewController alloc] init]; LeftViewController *le ...