Package database

Source Code of database.Data

package database;

import entita.Giocatore;
import java.sql.*;
import java.util.*;
import oracle.jdbc.pool.OracleDataSource;

//Classe database
public class Data
{
    private final int port = 1521;                                              //Porta di connessione
    private final String databaseName = "xe";                                   //Nome database
    //private final String username = "MONOPOLI";
    //private final String pass = "monopoli";
    private String username;                                                    //Username database
    private String password;                                                    //Password database
    private final String drive = "thin";                                        //Tipo di driver usato
    private final String serverName = "localhost";                              //Indirizzo del server
    private OracleDataSource ods;                                               //Istanza database
    private Connection conn = null;                                             //Connessione
    private Statement command;                                                  //Comando di query
    private ResultSet risultato;                                                //Risultato query
   
    //Metodo di memorizzazione username e password
    public void setUserEPass(String username, String password)
    {
        this.username = username;                                               //Memorizza username
        this.password = password;                                               //Memorizza password
    }
   
    //Metodo di connesione
    public void Connessione(String username, String password) throws SQLException
    {
        ods = new OracleDataSource();                                           //Crea una nuova istanza di database
        ods.setDriverType(drive);                                               //Imposta il driver da utilizzare
        ods.setServerName(serverName);                                          //Imposta l'indirizzo di connessione
        ods.setPortNumber(port);                                                //Imposta la porta
        ods.setDatabaseName(databaseName);                                      //Imposta il nome del database
        ods.setUser(username);                                                  //Imposta l'username di connessione
        ods.setPassword(password);                                              //Imposta la password
        conn = ods.getConnection();                                             //Crea la connessione al database
    }
   
    //Metodo aggiungi nuovo giocatore
    public void AggiungiNuovoGiocatore(String nome) throws SQLException, Exception
    {       
        //Query di selezione giocatore
        String querySelect = "SELECT NomeGiocatore"
                           + " FROM giocatori"
                           + " WHERE NomeGiocatore = '" + nome + "' ";
       
        Connessione(username, password);                                        //Richiama metodo di connessione
        command = conn.createStatement();                                       //Crea riga di comando query
        risultato = command.executeQuery(querySelect);                          //Preleva risultato della query
       
        //Verifica se esiste già il nome giocatore che si sta inserendo
        if (!risultato.next())                                                  //Se il nome da inserire non è presente nel database
        {
            risultato.close();                                                  //Chiudi connessione risultato query
            command.close();                                                    //Chiudi connessione con il comando query
            ChiudiConnessione();                                                //Chiama metodo di chiusura connessione
            InsertGiocatore(nome);                                              //Chiama matedo di inserimento nome giocatore
        }
        else                                                                    //Se il nome è già presente
        {
            risultato.close();                                                  //Chiudi connessione risultato query
            command.close();                                                    //Chiudi connessione con il comando query
            ChiudiConnessione();                                                //Chiama metodo di chiusura connessione
            throw new Exception();                                              //Lancia eccezione per nome già presente
        }       
    }
   
    //Metodo inserimento giocatore
    public void InsertGiocatore(String nome) throws SQLException
    {
        //Query di inserimento giocatore
        String queryInsert = "INSERT INTO giocatori"
                           + " (NomeGiocatore)"
                           + " VALUES"
                           + " ('" + nome + "')";
       
        Connessione(username, password);                                        //Richiama metodo di connessione
        command = conn.createStatement();                                       //Crea riga di comando query
        command.executeQuery(queryInsert);                                      //Esegue query di inserimento nome giocatore
        command.close();                                                        //Chiude connessione con i comandi
        ChiudiConnessione();                                                    //Chiama metodo di chiusura connessione
    }
   
    //Metodo cerca giocatori
    public Vector<Giocatore> CercaGiocatori(String nome) throws SQLException
    {
        Vector<Giocatore> elenco = new Vector<Giocatore>();                     //Array di giocatori trovati
       
        //Query di selezione giocatori
        String querySelect = "SELECT * "
                           + "FROM giocatori "
                           + "WHERE NomeGiocatore LIKE '" + nome + "%'";
       
        Connessione(username, password);                                        //Chiama metodo di connessione
        command = conn.createStatement();                                       //Crea riga di comando query
        risultato = command.executeQuery(querySelect);                          //Recupera il risultato della query
       
        //Inserimento dati risultato nell'array
        while (risultato.next())
        {
            elenco.add(new Giocatore(risultato.getInt(1), risultato.getString(2))); //Inserisce giocatore nell'elenco
        }
       
        risultato.close();                                                      //Chiude collegamento con il risultato
        command.close();                                                        //Chiude collegamento con il comando
        ChiudiConnessione();                                                    //Chiude connessione al database
       
        return elenco;                                                          //Ritorna elenco di giocatori
    }
   
    //Metodo cerca partita
    public boolean CercaPartita(String nome) throws SQLException
    {
        //Query di ricerca partita
        String querySelect = "SELECT NomePartita "
                           + "FROM Partite "
                           + "WHERE NomePartita = '" + nome + "'";
       
        Connessione(username, password);                                        //Chiama metodo di connessione
        command = conn.createStatement();                                       //Crea riga di comando query
        risultato = command.executeQuery(querySelect);                          //Recupera il risultato della query
       
        //Verifica se esiste una partita con lo stesso nome
        if (risultato.next())
        {
            risultato.close();                                                  //Chiude collegamento risultato
            command.close();                                                    //Chiude collegamento comando
            ChiudiConnessione();                                                //Chiude connessione
            return true;                                                        //Ritorna vero se ha trovato risultati
        }
       
        risultato.close();                                                      //Chiude collegamento risultato
        command.close();                                                        //Chiude collegamento comando
        ChiudiConnessione();                                                    //Chiude connessione
        return false;                                                           //Ritorna falso se non ha trovato nulla
    }
   
    //Metodo inserisci partita
    public void InsertPartita(String nome, String dataInizio, ArrayList<Giocatore> partecipanti) throws SQLException
    {
        String query;                                                           //Stringa per le interrogazioni al database
        int codicePartita;                                                      //Codice della partita da associare al giocatore
        int codiceGiocatore;                                                    //Codice del giocatore da associare alla partita
       
        Connessione(username, password);                                        //Chiama metodo di connessione
        command = conn.createStatement();                                       //Crea riga di comando query
       
        //Query di inserimento partita
        query = "INSERT INTO Partite (NomePartita, DataInizio) "
              + "VALUES "
              + "('" + nome + "', to_date('" + dataInizio + "','DD/MM/YYYY'))";
       
        command.executeQuery(query);                                            //Effettua la query
       
        //Query prelievo codice partita appena inserito
        query = "SELECT CodicePartita "
              + "FROM Partite "
              + "WHERE NomePartita = '" + nome + "'";
       
        risultato = command.executeQuery(query);                                //Recupera risultato della query
        risultato.next();                                                       //Puntatore alla prima riga di risultati
        codicePartita = risultato.getInt(1);                                    //Preleva codice della partita
        risultato.close();                                                      //Chiude collegamento risultato
       
        //Per ogni partecipante alla partita
        for (int i = 0; i < partecipanti.size(); i++)
        {
            codiceGiocatore = partecipanti.get(i).getCodiceGiocatore();         //Preleva codice giocatore
           
            //Query di inserimento giocatori in partita
            query = "INSERT INTO PartiteGiocatori (CodicePartita, CodiceGiocatore) "
                  + "VALUES "
                  + "('" + codicePartita + "', '" + codiceGiocatore + "')";
           
            command.executeQuery(query);                                        //Inserisce giocatore in partita
        }
       
        command.close();                                                        //Chiude collegamento comandi
        ChiudiConnessione();                                                    //Chiude la connessione
    }
   
    //Metodo chiusura connessione
    public void ChiudiConnessione() throws SQLException
    {
        conn.close();
    }
}
TOP

Related Classes of database.Data

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.