Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package moduli;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author lee
- */
- /*
- * Classe dedicata alla gestione del Database.
- * Gestisce l'apertura e la chiusura della connessione col Database
- * Fornisce i metodi per l'esecuzione delle query sul Database
- */
- import Phoibos.*;
- import java.sql.*;
- import java.util.Vector;
- public class Database {
- private static String nomeDB; // Nome del Database a cui connettersi
- private static String nomeUtente; // Nome utente utilizzato per la connessione alDatabase
- private static String pwdUtente; // Password usata per la connessione alDatabase
- private static String errore; // Raccoglie informazioni riguardo l'ultimaeccezione sollevata
- private static Connection db; // La connessione col Database
- private static boolean connesso; // Flag che indica se la connessione è attiva omeno
- static void start() {
- Database.nomeDB = "Energroup";
- Database.nomeUtente = "root";
- Database.pwdUtente = "";
- connesso = false;
- errore = "";
- }
- public Database(String nomeDB, String nomeUtente, String pwdUtente) {
- this.nomeDB = nomeDB;
- this.nomeUtente = nomeUtente;
- this.pwdUtente = pwdUtente;
- connesso = false;
- errore = "";
- }
- // Apre la connessione con il Database
- public static boolean connetti() {
- connesso = false;
- try {
- // Carico il driver JDBC per la connessione con il database MySQL
- Class.forName("com.mysql.jdbc.Driver");
- // Controllo che il nome del Database non sia nulla
- if (!nomeDB.equals("")) {
- // Controllo se il nome utente va usato o meno per la connessione
- if (nomeUtente.equals("")) {
- // La connessione non richiede nome utente e password
- db = DriverManager.getConnection("jdbc:mysql://localhost/" +nomeDB);
- } else {
- // La connessione richiede nome utente, controllo se necessita nche della password
- if (pwdUtente.equals("")) {
- // La connessione non necessita di password
- db = DriverManager.getConnection("jdbc:mysql://localhost/" +nomeDB + "?user=" + nomeUtente);
- } else {
- // La connessione necessita della password
- db = DriverManager.getConnection("jdbc:mysql://localhost/" +nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente);
- }
- }
- // La connessione è avvenuta con successo
- connesso = true;
- } else {
- System.out.println("Manca il nome del database!!");
- System.out.println("Scrivere il nome del database da utilizzareall'interno del file \"config.xml\"");
- System.exit(0);
- }
- } catch (Exception e) { errore = e.getMessage(); e.printStackTrace(); }
- return connesso;
- }
- // Esegue una query di selezione dati sul Database
- // query: una stringa che rappresenta un'istruzione SQL di tipo SELECT daeseguire
- // colonne: il numero di colonne di cui sarà composta la tupla del risultato
- // ritorna un Vector contenente tutte le tuple del risultato
- public static Vector eseguiQuery(String query) {
- Vector v = null;
- String [] record;
- int colonne = 0;
- try {
- Statement stmt = db.createStatement(); // Creo lo Statement perl'esecuzione della query
- ResultSet rs = stmt.executeQuery(query); // Ottengo il ResultSetdell'esecuzione della query
- v = new Vector();
- ResultSetMetaData rsmd = rs.getMetaData();
- colonne = rsmd.getColumnCount();
- while(rs.next()) { // Creo il vettore risultato scorrendo tutto ilResultSet
- record = new String[colonne];
- for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
- v.add( (String[]) record.clone() );
- }
- rs.close(); // Chiudo il ResultSet
- stmt.close(); // Chiudo lo Statement
- } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }
- return v;
- }
- public static String[] VecToStringS(Vector v){
- String[] tmp;
- String[] s =new String[v.size()+1];
- s[0] = "Selezionare...";
- for(int k=0;k<v.size();k++)
- {
- tmp =(String[]) v.elementAt(k);
- s[k+1] = tmp[0];
- }
- return s;
- }
- public static String[] VecToStringSN(Vector v){
- String[] tmp;
- String[] s =new String[v.size()+2];
- s[0] = "Selezionare...";
- s[1] = "Crea nuovo...";
- for(int k=0;k<v.size();k++)
- {
- tmp =(String[]) v.elementAt(k);
- s[k+2] = tmp[0];
- }
- return s;
- }
- public static void VecToString(String[] s,Vector v){
- String[] tmp;
- for(int k=0;k<1;k++)
- {
- if(v.size()>0){
- tmp =(String[]) v.elementAt(k);
- for(int i=0;i<tmp.length;i++){
- s[i] = tmp[i];
- }
- }}
- }
- public static String[][] VecToStringMatrice(int col,Vector v){
- if(v!=null){
- String[] record = null;
- String[][] tutticlienti =new String[v.size()][col];
- for(int i=0,p=0,k=0;i<tutticlienti.length;i++,p++)
- {
- for(int j=0;j<tutticlienti[0].length;j++)
- {
- if ( k<p+1 )
- record = (String[]) v.elementAt(k++);
- tutticlienti[i][j]=record[j];
- }
- }
- return tutticlienti;
- }
- else{
- String[][] tutticlienti =new String[1][col];
- return tutticlienti;
- }
- }
- // Esegue una query di aggiornamento sul Database
- // query: una stringa che rappresenta un'istuzione SQL di tipo UPDATE daeseguire
- // ritorna TRUE se l'esecuzione è adata a buon fine, FALSE se c'è stataun'eccezione
- public static boolean eseguiAggiornamento(String query) {
- int numero = 0;
- boolean risultato = false;
- try {
- Statement stmt = db.createStatement();
- numero = stmt.executeUpdate(query);
- risultato = true;
- stmt.close();
- } catch (Exception e) {
- e.printStackTrace();
- errore = e.getMessage();
- risultato = false;
- }
- return risultato;
- }
- // Chiude la connessione con il Database
- public static void disconnetti() {
- try {
- db.close();
- connesso = false;
- } catch (Exception e) { e.printStackTrace(); }
- }
- public static boolean isConnesso() { return connesso; } // Ritorna TRUE se con il Database è attiva
- public static String getErrore() { return errore; } // Ritorna il messaggiod'errore dell'ultima eccezione sollevata
- public static boolean InsertINTO(String table,String[] into, String[] values ){
- String query= "INSERT INTO "+table+" (";
- for(int i=0; i<into.length-2; i++){
- query+= into[i]+",";
- }
- query+= into[into.length-1]+") VALUES (";
- for(int i=0; i<values.length-2; i++){
- query+= values[i]+",";
- }
- query+= values[values.length-1]+") ;";
- return eseguiAggiornamento(query);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement