Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    139

    Connessione a DB mariadb in SSH via Java

    Ciao a tutti,

    Sto sviluppando una piccola utility Java (Progetto Maven) con la quale andare a recuperare dei dati da un DB su un server raggiungibile all'IP_1, compiere delle azioni sui dati e poi salvarli su un DB su un server raggiungibile all'IP_2.
    Agendo da software come Navicat riesco a raggiungere sia il DB sull'IP_1 che connettermi in SSH e quindi poi come localhost sul database presente sul server all'IP_2.
    Con la mia utility java ho però errore di connessione al DB sull'IP_2 nonostante la connessione SSH al server avvenga con successo.
    Avete suggerimenti o consigli? E' la prima volta che utilizzo Java per ciò e non capisco dove sia l'errore

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    139
    App.Java
    codice:
    package mspay.helpdesk;
    
    /**
     * Hello world!
     *
     */
    import java.util.*;
    import java.util.Properties;
    import java.io.IOException;
    import java.sql.*;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.JSchException;
    import com.jcraft.jsch.Session;
    
    public class App {
        public static void main(String[] args) {
            System.out.println("Recupero richieste di assistenza tecnica!");
    
    // Apertura connessione SSH
            try {
                final JSch jsch = new JSch();
    Sessionsession=jsch.getSession("user","ip_1",22);
                session.setPassword("pwd");
                final Properties config = new Properties();
                config.put("StrictHostKeyChecking", "no");
                session.setConfig(config);
                session.connect();
    session.setPortForwardingL(3306,"ip_2",3306);
    +
                if (session.isConnected()) {
                    System.out.println("Connessione SSH stabilita con successo!");
                    Class.forName("com.mysql.cj.jdbc.Driver");
                    Utility u = new Utility("ip_1", "username", "pwd", "db_name");
                    u.takeCassettiAttivi();
                    ResultSet ca = u.getComuni();
                    try {
                        while (ca.next()) {
                            System.out.println("Eleborazione del comune di: " + ca.getString(2));
                            u.takeRichiesteAssistenza(ca.getString(3));
                            ResultSet ri = u.getRichieste();
                            u.saveRichiesteAssistenza(ri, ca.getString(2).replace("'", ""));
                        }
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                } else {
                    System.out.println("Impossibile stabilire connessione SSH!");
                    System.exit(0);
                }
            } catch (JSchException jsche) {
                jsche.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
    
        }
    }
    
    

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    139
    Utility.java
    codice:
    package mspay.helpdesk;
    
    import java.util.*;
    //gestione sql
    import java.sql.*;
    //gestione files
    import java.nio.file.*;
    import java.io.File;
    import java.util.Date;
    import java.time.LocalDate;
    import java.text.SimpleDateFormat;
    import java.util.concurrent.TimeUnit;
    
    public class Utility {
    
       static private String host;
       static private String uname;
       static private String pwd;
       static private String db;
       static Connection c = null;
       static private ResultSet ca;
       static private ResultSet rich;
    
       public Utility(String h, String usr, String pass, String database) {
          host = h;
          uname = usr;
          pwd = pass;
          db = database;
       }
    
    // recuperiamo i cassetti attivi
       public void takeCassettiAttivi() {
       }
    
    // recuperiamo le richieste di assistenza tecnica
       public void takeRichiesteAssistenza(String database) {
       }
    
    // salviamo le richieste sul database
       public void saveRichiesteAssistenza(ResultSet richieste, String comune) {
    
          System.out.println("Salvataggio delle richieste nel repository centrale, COMUNE DI :" + comune);
          try {
             String database = "helpdesk";
             c = DriverManager.getConnection(
                   "jdbc:mariadb://localhost:3306/" + database + "?user=USERNAME&password=PASSWORD");
    
    // effettuo l'insert delle richieste all'interno del DB di helpdesk
                while (richieste.next()) {
                   StringBuilder sql = new StringBuilder(
                         "INSERT INTO richieste_assistenza (comune, nominativo, cfpiva, email, oggetto, richiesta, mailcomune, datarichiesta, orarichiesta, stato) VALUES (");
                   sql.append("'" + comune + "', '" + richieste.getString(4).replace("'", "") + "', '"
                         + richieste.getString(11) + "', '" + richieste.getString(5) + "', '" + richieste.getString(6)
                         + "', '" + richieste.getString(7) + "', '" + richieste.getString(13) + "', '"
                         + richieste.getString(2) + "', '" + richieste.getString(3) + "', 'NUOVA')");
                   System.out.println("QUERY DI UPDATE");
                   System.out.println(sql.toString());
                   Statement st = c.createStatement();
                   st.executeUpdate(sql.toString());
                }
                c.close();
          } catch (SQLException e) {
             e.printStackTrace();
          }
       }
    }
    
    

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.