Advertisement
SalvatoreCastaldo

Untitled

Sep 12th, 2017
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.72 KB | None | 0 0
  1. import java.sql.*;
  2. import javax.swing.JOptionPane;
  3. import oracle.jdbc.pool.OracleDataSource;
  4.  
  5. /*
  6.  * @author Massimo
  7.  * @author ADeLuca
  8.  * @version 2017
  9.  */
  10.  
  11. // Classe principale di connessione al database.
  12. public class Database {
  13.     /**
  14.     * Indirizzo del server Oracle.
  15.     */
  16.    static public String host = "localhost";
  17.    /**
  18.     * Nome del servizio.
  19.     */
  20.    static public String servizio = "xe";
  21.    /**
  22.     * Porta utilizzata per la connessione.
  23.     */
  24.    static public int porta = 1521;
  25.    /**
  26.     * Nome utente per la connessione.
  27.     */
  28.    static public String user = "";
  29.    /**
  30.     * Password corrispondente all'utente specificato.
  31.     */
  32.    static public String password = "";
  33.    /**
  34.     * Nome dello schema contenente le tabelle/viste/procedure cui si vuole
  35.     * accedere; coincide di solito con il nome utente.
  36.     */
  37.    static public String schema = "";
  38.    /**
  39.     * Oggetto DataSource utilizzato nella connessione al DB
  40.     */
  41.    static private OracleDataSource ods;
  42.    /**
  43.     * Variabile che contiene la connessione attiva, se esiste
  44.     */
  45.    static private Connection defaultConnection;
  46.    /**
  47.     * Crea una nuova istanza di Database
  48.     */
  49.    public Database() {
  50.    }
  51.    /**
  52.     * Restituisce la connessione di default al DB.
  53.     *
  54.     * @return Connessione di default (quella già attiva, o una nuova
  55.     * ottenuta in base ai parametri di connessione attualmente impostati
  56.     * @throws SQLException In caso di problemi di connessione
  57.     */
  58.     static public Connection getDefaultConnection() throws SQLException {
  59.       if (defaultConnection == null || defaultConnection.isClosed()) {
  60.          defaultConnection = nuovaConnessione();
  61.          System.out.println("nuova connessione");
  62.       } else {
  63.          System.out.println("ricicla connessione");
  64.       }
  65.  
  66.       return defaultConnection;
  67.    }
  68.     /**
  69.     * Imposta una connessione specificata in input come default.
  70.     *
  71.     * @param c Connessione al DB
  72.     */
  73.    static public void setDefaultConnection(Connection c) {
  74.       defaultConnection = c;
  75.    }
  76.  
  77.    /**
  78.     * Restituisce una nuova connessione al DB.
  79.     *
  80.     * @return Connessione al DB secondo i parametri attualmente impostati
  81.     * @throws java.sql.SQLException in caso di problemi di connessione
  82.     */
  83.    static public Connection nuovaConnessione() throws SQLException {
  84.       ods = new OracleDataSource();
  85.       ods.setDriverType("thin");
  86.       ods.setServerName(host);
  87.       ods.setPortNumber(porta);
  88.       ods.setUser(user);
  89.       ods.setPassword(password);
  90.       ods.setDatabaseName(servizio);
  91.       return ods.getConnection();
  92.    }
  93.    /**
  94.     * Metodo per mostrare una finestra di dialogo con una (scarna, perché
  95.     * ottenuta da Oracle) descrizione dell'errore avvenuto. È buona norma
  96.     * usare descrizioni piú informative quando si conoscono le possibili
  97.     * eccezioni sollevate da un'applicazione.
  98.     *
  99.     * @param thrower Oggetto che ha lanciato l'eccezione
  100.     * @param e Eccezione SQL da gestire
  101.     */
  102.    static public void mostraErroriSwing(java.awt.Component thrower,
  103.            SQLException e) {
  104.       String msg;
  105.       msg = e.getMessage() + "\n";
  106.       msg += "SQLState= " + e.getSQLState() + "\n";
  107.  
  108.       JOptionPane.showMessageDialog(thrower, msg, "Errore " + e.getErrorCode(),
  109.               JOptionPane.ERROR_MESSAGE);
  110.    }
  111.  
  112.    /**
  113.     * Effettua una query e restituisce il primo valore.
  114.     *
  115.     * @param query String contenente l'interrogazione
  116.     * @return oggetto contenente la prima colonna della prima riga del risultato
  117.     */
  118.    static public Object leggiValore(String query) {
  119.       Object ret;
  120.       Connection con;
  121.       Statement st;
  122.       ResultSet rs;
  123.       ret = null;
  124.       try {
  125.          con = getDefaultConnection();
  126.          st = con.createStatement();
  127.          rs = st.executeQuery(query);
  128.          rs.next();
  129.          ret = rs.getObject(1);
  130.       } catch (SQLException e) {  //nessuna azione
  131.       }
  132.       return ret;
  133.    }
  134.  
  135.    /**
  136.     * Effettua una query e restituisce il primo valore.
  137.     *
  138.     * @param query String contenente l'interrogazione con segnaposto
  139.     * @param codice int per rimpiazzare il segnaposto
  140.     * @return oggetto contenente la prima colonna della prima riga del risultato
  141.     */
  142.    static public Object leggiValore(String query, int codice) {
  143.       Object ret;
  144.       Connection con;
  145.       PreparedStatement st;
  146.       ResultSet rs;
  147.       ret = null;
  148.       try {
  149.          con = getDefaultConnection();
  150.          st = con.prepareStatement(query);
  151.          st.setInt(1, codice);
  152.          rs = st.executeQuery();
  153.          rs.next();
  154.          ret = rs.getObject(1);
  155.       } catch (SQLException e) {
  156.       }
  157.       return ret;
  158.    }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement