• 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();
                    }
            }
    
    	}
    
    }
    

      

  • 相关阅读:
    FPGA学习之基本结构
    凸优化和机器学习
    第6篇如何访问pod
    吉日嘎拉DotNet.BusinessV4.2中的一处bug,及我的修复和扩展
    吉日嘎拉C#快速开发平台V4.0到V4.2升级记
    布隆过滤器简介及实现-----源自数学之美
    poj [1753]
    Zookeeper Hello World
    获取用户真实IP,php实现
    mysql中engine=innodb和engine=myisam的区别
  • 原文地址:https://www.cnblogs.com/I-will-be-different/p/3925351.html
Copyright © 2020-2023  润新知