Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra abbina per la prima volta un pannello AMOLED alla tecnologia NXTPAPER con finitura opaca, affiancandoci una fotocamera periscopica da 50 MP con zoom ottico 3x, il SoC Dimensity 7400 Elite e una batteria da 5.800 mAh. Nella prova sul campo emergono luminosità di picco molto elevata, comparto fotografico solido per la fascia di prezzo e autonomia nella media, a fronte di velocità di scrittura dello storage piuttosto contenute
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-09-2011, 15:40   #1
supersalam
Senior Member
 
L'Avatar di supersalam
 
Iscritto dal: Jun 2003
Città: Monopoli
Messaggi: 2789
[JAVA] Array e Array List con JDBC Driver

Ragazzi devo creare un database che contenga gli esami svolti da studenti e che quindi permetta l'inserimento, la modifica, la ricerca, e la cancellazione dei dati.

Il prof mi ha chiesto di inserire gli studenti in un array e gli esami in un array list.

Ma come faccio ad inviare i dati contenuti in un array al driver JDBC?

Credo che il professore voglia un array per evitare che ci si connetta al database ad ogni istruzione.
__________________
CASE: Antec P182 - ALI: Corsair CX650M - CPU: AMD Ryzen 5 PRO 4650G +
Cooler Master Hyper 212X - MB: ASUS PRIME A520M-K -RAM: G.SKILL Aegis 3200MHz 16GB - SSD: SanDisk Plus SSD 240GB - SA: Asus Xonar Essence STX - MOUSE: Logitech G9 - CUFFIE: Sennheiser HD 595 -
*STEAM*
supersalam è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2011, 23:29   #2
Ken1986
Member
 
Iscritto dal: Nov 2007
Messaggi: 122
Il modo più semplice ed intuitivo è quello leggerti i dati dal db e memorizzarli nella tua struttura dati, se effettui delle modifiche ti aggiorni sia la struttura e sia il DB.
Ti consiglio di crearti i tuoi oggetti esami e studenti e di inserirli nelle hashmap: [id][TuoOggetto]
Ken1986 è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2011, 10:02   #3
supersalam
Senior Member
 
L'Avatar di supersalam
 
Iscritto dal: Jun 2003
Città: Monopoli
Messaggi: 2789
Quote:
Originariamente inviato da Ken1986 Guarda i messaggi
Il modo più semplice ed intuitivo è quello leggerti i dati dal db e memorizzarli nella tua struttura dati, se effettui delle modifiche ti aggiorni sia la struttura e sia il DB.
Ti consiglio di crearti i tuoi oggetti esami e studenti e di inserirli nelle hashmap: [id][TuoOggetto]
Ciao Ken, gentilissimo. Avresti qualche tutorial oppure sito che tratta l'argomento? Anche in inglese va benissimo.

Purtroppo questi professori ti dicono quello che devi fare ma non ti dicono come, e il libro non tratta JDBC.
__________________
CASE: Antec P182 - ALI: Corsair CX650M - CPU: AMD Ryzen 5 PRO 4650G +
Cooler Master Hyper 212X - MB: ASUS PRIME A520M-K -RAM: G.SKILL Aegis 3200MHz 16GB - SSD: SanDisk Plus SSD 240GB - SA: Asus Xonar Essence STX - MOUSE: Logitech G9 - CUFFIE: Sennheiser HD 595 -
*STEAM*
supersalam è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2011, 10:33   #4
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da supersalam Guarda i messaggi
Ciao Ken, gentilissimo. Avresti qualche tutorial oppure sito che tratta l'argomento? Anche in inglese va benissimo.

Purtroppo questi professori ti dicono quello che devi fare ma non ti dicono come, e il libro non tratta JDBC.
guarda il tutto è molto semplice ed intuitivo. concordo che i prof non dicono niente, però almeno da me se hai problemi non si fanno problemi ad aiutarti.

hai una minima conoscenza di sql per fare le query di inserimento e modifica dei dati? se usi mysql esiste un driver apposito che si chiama jconnector che ti evita di usare driver odbc.

il tutto puoi semplicemente trovarlo online. la gestione delle liste è ovviametnedel tutto indipendete a ciò.
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2011, 11:20   #5
Ken1986
Member
 
Iscritto dal: Nov 2007
Messaggi: 122
Quote:
Originariamente inviato da franksisca Guarda i messaggi
guarda il tutto è molto semplice ed intuitivo. concordo che i prof non dicono niente, però almeno da me se hai problemi non si fanno problemi ad aiutarti.

hai una minima conoscenza di sql per fare le query di inserimento e modifica dei dati? se usi mysql esiste un driver apposito che si chiama jconnector che ti evita di usare driver odbc.

il tutto puoi semplicemente trovarlo online. la gestione delle liste è ovviametnedel tutto indipendete a ciò.
Concordo pienamente, di tutorial su google ce ne stanno tantissimi
Ken1986 è offline   Rispondi citando il messaggio o parte di esso
Old 28-09-2011, 16:55   #6
supersalam
Senior Member
 
L'Avatar di supersalam
 
Iscritto dal: Jun 2003
Città: Monopoli
Messaggi: 2789
Allora, posto tutto il codice che ho fatto così mi aiutate un pochettino .

Ho creato con mysql un database di nome esami, con password studente.
il database per ora ha 2 tabelle (e credo non ne servano altre) esami, studenti.

Cosa voglio ottenere?

1: Studenti in java deve essere gestito come un array, e il caricamento sul database deve essere fatto alla fine delle operazioni.

2: Esami devono essere in un arraylist e sono associati allo studente (è fondamentalmente una verbalizzazione).

3: Un comando trova che restituisce alcune query.

4: Un comando elimina.

E basta.

Ecco cosa ho fatto io fino ad ora (è molto spartano quindi non badate al codice buttato li senza essere incapsulato):


Main.java


Codice:
import java.sql.*;
import java.util.Scanner;

public class Main {
	
	
  public static void main(String[] args) {
	 
	Scanner scan =new Scanner(System.in);
	int scelta=0;
    Statement stat = null;
    ResultSet result = null;
    PreparedStatement pstat;
    Object st, es2, es3 ;
    
   
        scelta= 0;

			    
			    while( scelta!=5)
				{
			    	
			        System.out.println( "\nSeleziona operazione da effettuare\n");
				    System.out.println("1: Inserisci Studente");
				    System.out.println("2: Inserisci Esame");
				    System.out.println("3: Trova");
				    System.out.println("4: Modifica Tabelle");
				    System.out.println("5: Esci");
				    
				    System.out.println("---> ");
				    scelta=scan.nextInt();
				    
					switch(scelta){

						case 1:	{ 
				
							st=new Studenti();
							
							// if (mi inventerò qualcosa) return System.out.println("Operazione effettuata!");
									break;}
						case 2:	{
							
							es2=new Esame();
							
							break;}
						//
						case 3:	{	break;}
						//
						case 4:	{	break;}
						//
						default: {	System.out.println("Ciao");break; }
			 	 }
								  } 

  
}
  }

Studenti.java
Codice:
import java.sql.*;
import java.util.Scanner;
import java.util.ArrayList;

class Studenti {
	private int matricola;
	private String nomen, cogno;
	ArrayList<Esame> Esami = new ArrayList<Esame> ();
	
	
	Scanner scan =new Scanner(System.in);
	
	public void InserisciM(){
		matricola=scan.nextInt();
	}
	
	public void InserisciN(){
		nomen=scan.next();
	}
	
	public void InserisciC(){
		cogno=scan.next();
	}
	
	public int stampaM(){return matricola;}
	public String stampaN(){return nomen;}
	public String stampaC(){return cogno;}
	
	public Studenti( ){
		
		
		Statement stat = null;
		String istruzioneSql, esm;
		int numRighe;
		boolean flag;
		
		 try{
			 
		      Class.forName("com.mysql.jdbc.Driver").newInstance();
		      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/esami", "root", "studente");
		      if(!conn.isClosed())
		        System.out.println("Connessione a MySQL server effettuata con successo.");
		      stat= conn.createStatement();
		      

		System.out.println("\n Inserisci matricola studente: ");
		InserisciM();
		System.out.println("Inserisci nome studente: ");
		InserisciN();
		System.out.println("Inserisci cognome studente: ");
		InserisciC();
		
		istruzioneSql="INSERT INTO `studenti` (Matricola, Nome, Cognome) VALUES" + "('"+stampaM()+"','" +stampaN()+"','"  +stampaC()+"');";
		flag=stat.execute(istruzioneSql);
		
		System.out.println("Vuoi Inserire degli esami in questo studente? (S o N): ");
		esm=scan.next();
		
		if (esm == "S")
		Esami.add(new Esame());
		
		}
	    catch (Exception ex) {
	        System.out.println("SQLException: " + ex.getMessage());
	      }
	      
	    }
}
Esame.java

Codice:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;

class Esame {
	
	String Esame, Data;
	int Matricola, Voto;
	int Lode;
	Scanner scan =new Scanner(System.in);
	
	public Esame(){
		
		Statement stat = null;
		String istruzioneSql;
		String lde;
		boolean verifica;
		
		 try{
			 
		      Class.forName("com.mysql.jdbc.Driver").newInstance();
		      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/esami", "root", "studente");
		      if(!conn.isClosed())
		      System.out.println("Connessione a MySQL server effettuata con successo.");
		      stat= conn.createStatement();	

    							
	System.out.println("\nInserisci matricola studente: ");
	Matricola=scan.nextInt();
	verifica = controlloM (Matricola);
		
	if (verifica==true) { 	
	
	System.out.println("Inserisci nome Esame: ");
	Esame=scan.next();
	System.out.println("Inserisci Voto: ");
	Voto=scan.nextInt();
	if (Voto==30) {
		System.out.println("Lode (S o N): "); 
		lde=scan.next(); 
		if (lde=="S") Lode=1; 
				  }		
	System.out.println("Inserisci Data esame (AAAA-MM-GG): ");
	Data=scan.next();
	
	istruzioneSql="INSERT INTO `esame` (Matricola, NomeEs, Voto, Data, Lode) VALUES" + "('"+Matricola+"','" +Esame+"','"  +Voto+ "','"+Data+"','"+Lode+"');";
	stat.execute(istruzioneSql);
										} //fine if
	
	else { System.out.println("Hai inserito una matricola che non esiste nel database.");}
	
	}
	catch (Exception ex) {
		 System.out.println("SQLException: " + ex.getMessage());
							}
	}

	
	public boolean controlloM (int Matricola) {
		boolean verifica=false;
		Statement stat= null;
		String istruzioneSql;
		
		try{
		  Class.forName("com.mysql.jdbc.Driver").newInstance();
	      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/esami", "root", "studente");
	      stat= conn.createStatement();	
		
	    ResultSet result = null;
	    int count;
	    
	    istruzioneSql="SELECT * FROM esami.studenti WHERE Matricola ="+ Matricola + ";";
	    result= stat.executeQuery(istruzioneSql);
	    result.last();
		// count=result.getRow();
		
		if (result.last() == true) verifica=true;
		

		}
		catch (Exception ex) {
			 System.out.println("SQLException: " + ex.getMessage());
								}
		return (verifica);
	}
}
__________________
CASE: Antec P182 - ALI: Corsair CX650M - CPU: AMD Ryzen 5 PRO 4650G +
Cooler Master Hyper 212X - MB: ASUS PRIME A520M-K -RAM: G.SKILL Aegis 3200MHz 16GB - SSD: SanDisk Plus SSD 240GB - SA: Asus Xonar Essence STX - MOUSE: Logitech G9 - CUFFIE: Sennheiser HD 595 -
*STEAM*

Ultima modifica di supersalam : 06-10-2011 alle 17:35.
supersalam è offline   Rispondi citando il messaggio o parte di esso
Old 28-09-2011, 23:18   #7
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
lol domani leggo tutto...promesso
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2011, 14:39   #8
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Francamente non ho capito dove sia il tuo problema se nella gestione delle strutture dati, nella gestione della persistenza, oppure nel collegamento al DBMS.
La questione è abbastanza semplice: hai delle strutture dati in memoria, le scansioni e rendi i dati persistenti. Con l' operazione contraria recuperi i dati persistenti e li dai in pasto al programma.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 06-10-2011, 17:30   #9
supersalam
Senior Member
 
L'Avatar di supersalam
 
Iscritto dal: Jun 2003
Città: Monopoli
Messaggi: 2789
Ragazzi, sono sempre io. Vorrei sapere come si fa a creare un arrayList di tipo Esame e a farlo funzionare.

Ho aggiornato il codice in prima pagina. Il mio dubbio è scritto in rosso.
Grazie a chi mi aiuterà.
__________________
CASE: Antec P182 - ALI: Corsair CX650M - CPU: AMD Ryzen 5 PRO 4650G +
Cooler Master Hyper 212X - MB: ASUS PRIME A520M-K -RAM: G.SKILL Aegis 3200MHz 16GB - SSD: SanDisk Plus SSD 240GB - SA: Asus Xonar Essence STX - MOUSE: Logitech G9 - CUFFIE: Sennheiser HD 595 -
*STEAM*

Ultima modifica di supersalam : 06-10-2011 alle 17:35.
supersalam è offline   Rispondi citando il messaggio o parte di esso
Old 06-10-2011, 22:34   #10
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da supersalam Guarda i messaggi
Ragazzi, sono sempre io. Vorrei sapere come si fa a creare un arrayList di tipo Esame e a farlo funzionare.

Ho aggiornato il codice in prima pagina. Il mio dubbio è scritto in rosso.
Grazie a chi mi aiuterà.
hai usato i Generics??

in spiccioli
ArrayList <Esame> esami= new ArrayList<Esame>();

Esame ex=new Esame(....);
esami.add(ex);
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
Computer quantistici tolleranti ai guast...
Optimus entra in produzione sulle linee ...
Amodei: Mythos aperto a tutti solo a giu...
Lazarus protegge il malware con la critt...
e-bike in offerta su Amazon: due city da...
NVIDIA comprime una fabbrica AI in un co...
H2-X Kung Fu Legend Guardian: il robot g...
Beyond Good and Evil 2 sarebbe ancora in...
Per la prima volta un virus progettato d...
La famiglia Getty si riprende Getty Imag...
Intel costruisce nuove fabbriche, ma per...
Barclays taglia 5.000 posti di lavoro: l...
PEC con gli indirizzi email dei destinat...
L'IA sovrana non si decide solo dove ris...
Offerte Amazon, gli sconti non si ferman...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v