Tomcat

  • In Eclipse quando avviate il server, questo “pubblica il progetto” in pratica copia fisicamente i file dal workspace in una cartella interna, con relativa perdita di tempo, per evitare questo, modificate le impostazione del server con un doppio click nel tab Server, e mettete la spunta su “Serve modules without publishing” in questo modo l’avvio del Server sarà molto più rapido.
  • Se il progetto è molto grande e impiega parecchio tempo per avviarsi, editate il Server e aumentate il valore inserito in “Timeouts -> Start” evitando di andare in timeout dopo 45 secondi

Le variabili d’ambiente

Le variabili d’ambiente sono informazioni che risiedono nel PC, e indicano la posizione dei vari programmi:

Windows

Si possono visualizzare dal prompt dei comandi con SET e invio.

Si impostatano sempre con SET nome_variabile=valorevariabile

Per esempio SET JAVA_HOME=”C:\Program Files\Java\jdk1.8.0_05″

Una variabile d’ambiente fondamentale è la PATH, dove sono indicati tutti i percorsi in cui il S.O. deve cercare file eseguibili, in parole povere, se all’interno di prompt di comandi lancio un comando (Es.: xcopy.exe), il S.O. prima lo cerca nella directory corrente poi comincia a cercarlo in tutti i percorsi contenuti nel PATH.

Per aggiungere una directory al PATH si usa la seguente forma: set PATH=%PATH%;nuova_cartella in questa maniera il vecchio PATH non si perde.

Inoltre da windows è possibile visualizzare le variabili d’ambiente da:

  • Windows 7: Start – Pannello di controllo – Sistema e Sicurezza – Sistema – Impostazioni di sistema avanzate – tab Avanzate – Variabili d’ambiente

Linux

Si impostano con export nome_variabile=valore

PL/SQL [Oracle]

  • Le istruzioni si concludono con un “;”
  • I commenti:
    • su linea “–“
    • su più linee  “/* … */”
  • Assegnazione variabile “:=”
  • Tipi di variabili: VARCHAR2, INTEGER, NUMBER, DATE, BOOLEAN, LONG, LONG RAW, CLOB, BINARY_INTEGER
  • Dichiarazione oggetto (si usa spesso per dichiarare una tabella):

CREATE OR REPLACE TYPE type_nomeOggetto AS OBJECT
(
nomeCampo  tipoNomeCampo,
ns NUMBER(2),
evento DATE
);

  • Dichiarazione tabella (si usa spesso come ritorno di una funzione):
    • CREATE OR REPLACE TYPE typ_nomeTabella AS TABLE OF type_nomeOggetto;
  • Dichiarazione tabella esistente:
    • rec_nomeVariabile TABELLA%ROWTYPE;
  • creazione funzione
    • create or replace function NOME_FUNZIONE(Variabile1 tipo_Variabile1, Variabile2 tipo_Variabile2) return tipo_variabile_ritorno is

ELENCO_VARIABILI_USATE_NELLA_FUNZIONI

begin

………

end NOME_FUNZIONE;

  • creazione procedura
    • create or replace procedure NOME_PROCEDURA(Variabile1 tipo_Variabile1, Variabile2 tipo_Variabile2)  is

ELENCO_VARIABILI_USATE_NELLA_PROCEDURA

begin

………

end NOME_PROCEDURA;

  • costrutto IF

IF condizione THEN
istruzioni;
END IF;

  • costrutto IF ELSE

IF condizione THEN
istruzioni;
ELSE
istruzioni;
END IF;

  • Condizioni: =, <, >, <>, IS NULL, IS NOT NULL
  • Cicli FOR

    FOR i IN 1..tbl_CicloVaccinale.count LOOP
dbms_output.put_line(tbl_CicloVaccinale(i).ns || ‘ ‘ ||
tbl_CicloVaccinale(i).min || ‘ ‘ ||
tbl_CicloVaccinale(i).max || ‘ ‘ ||
tbl_CicloVaccinale(i).vacc);
END LOOP;

  • Esecuzione singola query

strQuery:=’SELECT count(*) FROM tabella WHERE idtabella1 = :1 AND idtabella2 = :2′;
BEGIN
EXECUTE IMMEDIATE strQuery
INTO tmpNumber
USING xId1, xId2;
EXCEPTION
WHEN no_data_found THEN
RETURN ‘-‘;
END;

  • Cursori
    • Dichiarazione

CURSOR cur_elencoCicli(idAnagrafica_In number, idvacMalattia_In number) IS
SELECT vcp.idciclo, vc.codice, vc.descrizione,
FROM vacciclipaziente vcp, vaccicli vc, vacdaeseguire vde
WHERE vcp.idciclo = vc.idcicli
AND   vde.idvacciclo = vcp.idciclo
AND   vde.idanagrafica = vcp.idanagrafica
AND   vcp.idanagrafica = idAnagrafica_In
AND   vcp.idvacmalattia = idvacMalattia_In
AND   vcp.statociclo IN (0,1,2,6,7);
rec_elencoCicli cur_elencoCicli%ROWTYPE;

Apertura

OPEN cur_elencoCicli(rec_elencoPazienti.idanagrafica, malattieDaPrenotare(i).Idvacmalattie);

LOOP
FETCH cur_elencoCicli INTO rec_elencoCicli;
EXIT WHEN cur_elencoCicli%NOTFOUND;
totRec_elencoCicli:=totRec_elencoCicli + 1;
END LOOP;

Per velocizzare il tempo di esecuzione [Oracle]

Ci sono alcune direttive per cercare di velocizzare i tempi d’esecuzione di una query, le direttive sono parole che si inseriscono tra /*+  e */, sembrano commenti e per le versioni del DB che non le contemplano lo sono, per le ultime versioni trattano in maniera diversa l’esecuzione della query

  • SELECT /*+ PARALLEL(10) */
    • la query viene eseguita in 10 thrend paralleli

SQL

  • Insert
    • INSERT INTO table_name
      VALUES (value1,value2,value3,…);
    • INSERT INTO table_name (column1,column2,column3,…)
      VALUES (value1,value2,value3,…);
  • Insert con sequence
    • INSERT INTO emp (empno) VALUES (mySeq.nextVal);

Workspace

Il workspace di Eclipse è una cartella del file system dove si trovano i progetti, di solito si trova a sinistra del layout e i progetti possono essere esplorati nelle cartelle e sotto cartelle.

Ci sono due modi per visualizzare i file di un progetto:

  • Project Explorer: I file sono organizzati per mettere in evidenza la posizioni in relazione al progetto steso, infatti nella cartella Java Resources\src troviamo i package dei file e non la directory
  • Navigator: I File sono visualizzati per come sono memorizzati nel file system (è quello che preferisco, ma è una questione di gusti)

N.B.: Per visualizzare Navigator (che poi è View) basta fare Menù – Window – Show View – Navigaotor (se non lo trovate Other e fate una ricerca scrivendo “Navig” nella casella “type filter text”

 

Attenzione: Quando cancellate un progetto (tasto Sx sul nome del progetto -> Delete), Eclipse vi chiede: Delete project contents on disk se mettete la spunta cancellerà i file oltre che dal workspace anche dal file system (e quindi, normalmente, non saranno più recuperabili) se non si mette la spunta verrà cancellata solo dal workspace e lasciati nel file system, vi sconsiglio questa scelta perché e mantenere una sincronizzazione tra workspace e file system.

I progetti nel workspace posso essere chiusi (tasto SX – Close del project), quando un progetto è chiuso non farà parte delle ricerche (quando cercheremo un file nel workspace, ma soprattutto non saranno controllati i file risparmiando del tempo prima di avere Eclipse pronto al 100%. Per riaprire il progetto tasto SX – Open project.

Ant

Per prima cosa diamo una lettura a Wikipedia. Detto in un altro modo serve per compilare un progetto organizzando al meglio le risorse e il tipo di compilazione.

Ci sono due modi per usarlo :

  • Dal filesystem
  • Dentro l’editor (per esempio Eclipse)

Dal filesystem

  1. Per prima cosa scarichiamolo da ant.apache.org
  2. Come di consueto (non si installa niente) si scompatta in una cartella
  3. Si settano le variabili d’ambiente (come settare le variabili d’ambiente):
    1. ANT_HOME: la root di Ant
    2. JAVA_HOME: la root del JDK (da verificare)
    3. Aggiungere al PATH la cartella bin di Ant
    4. Aggiungere al PATH la cartella bin del JDK (da verificare)
  4. Si usa Ant direttamente dal prompt dei comandi che usa un file .xml, di solito si chiama build.xml, quindi mi porto mi porto dove si trova il file build.xml, e digito ant deploy avviando il target deploy del build.xml

Da Eclipse

Comprende la gestione del file Ant, in particolare:

  • Per crearlo: Tasto destro del mouse sul progetto, nuovo – Other … – Ant
  • Per editare: con un doppio click (come al solito)
  • Per utilizzarlo: Si deve aprire la vista Ant: menu – Window – Show View – Other – Ant, disolito in basso si apre il tab Ant, si trascina il file build.xml qui e si lancia il targer che ci interessa con un doppio clck.

Build.xml

Il file è un insieme di target annidati tra loro, Ant si basa sulla dipendenza tra target, questo vuol dire che se abbiamo un target3 che ha target1 come dipendente, quando lancio target3 prima viene eseguito il target1.

Vediamo i taget più comuni:

  • <project>: target principale, sarebbe l’inizio del file
  • <target name=”main”> …. </target>: definisco un target di tipo main che contiene comandi
  • <echo message=”questo è un mex”/>:  serve per scrivere un messaggio o nella console di Eclipse o nel prompt dei comandi
  • <property nomeVariabile=”valore”/>: definisco variabile, può essere contenuta anche in un file esterno, si legge con ${nomeVariabile}, si definisce una volta sola e non può più cambiare
  • <jar>: crea il file jar
  • <war>: crea il file war
  • <javac>: compila i file java