Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Landi
    Registrato dal
    Jun 2012
    residenza
    Torino
    Messaggi
    39

    query in programma java

    Ciao a tutti!
    Ho creato un'applicazione in Java che mi permette di connettermi ad un server.
    Creato il database da schermata PHP, devo aggiungere all'applicazione un metodo per formulare una query tramite la quale creo una tabella se non esiste.

    Questo è il codice,

    codice:
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Scanner;
       
       
    	
    	 public class testconn{ 
    	 
    	
    	public static void main(String[] args) {
    		
    		 
    		String indirizzo;
    		  String nome;
    		  String pass;
    		  Scanner in; 
    		  String riga;
    		  
    		  in= new Scanner (System.in);
    	  
    	System.out.println("Inserisci indirizzo database: ");
    	indirizzo=in.nextLine();
    	System.out.println("Inserisci nome database: ");
    	nome=in.nextLine();
    	System.out.println("Inserire password: ");
    	pass=in.nextLine();
    	  
    	try
    {
    	Class.forName("com.mysql.jdbc.Driver");
    	 }
    	 catch (Exception exc1)
    	 {
    	 System.out.println("Errore - Driver jdbc non presente: "+
    	 exc1.getMessage());
    	 }
    	 try
    	 {
    	 
    		 Connection conn = DriverManager.getConnection
    				 (
    				 "jdbc:mysql://"+indirizzo,
    				 nome,
    				 pass
    				 ); 
    	  
    	/* restituzione data e ora */
    		
    	 Statement stmt = conn.createStatement();
    	 ResultSet rset = stmt.executeQuery("SELECT now();");
    	
    	 	while (rset.next())
    	 	{
    	 		System.out.println(rset.getString(1));
    	 	}
    	  
    	 	/* creazione tabella */
    	 	
    	 	Statement stmt1 = conn.createStatement();
    	 	
    	 	
    	 	String sql = CREATE TABLE LSVDB.dipendenti(" id INTEGER  NOT NULL, nome  CHAR(50) NOT NULL, cognome CHAR(50) NOT NULL, ruolo CHAR(20) NULL, assunzione DATETIME NOT NULL");
    
    
    	    stmt.executeUpdate(sql);
    	 	
    	 	
    	 	
    	 	
    	 		rset.close();
    	 		stmt.close();
    	 		stmt1.close();
    	 		conn.close();
    	 }
    	 catch (Exception exc)
    	 	{
    		 System.out.println("Errore: "+ exc.getMessage());
    	 	}
    
    	}








    l'errore che mi segnala è il sguente:

    codice:
    Errore: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: query in programma java

    Originariamente inviato da Landi
    codice:
    	 	String sql = CREATE TABLE LSVDB.dipendenti(" id INTEGER  NOT NULL, nome  CHAR(50) NOT NULL, cognome CHAR(50) NOT NULL, ruolo CHAR(20) NULL, assunzione DATETIME NOT NULL");
    
    	    stmt.executeUpdate(sql);
    Te le compila sul serio queste righe?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di Landi
    Registrato dal
    Jun 2012
    residenza
    Torino
    Messaggi
    39
    No appunto l'errore è proprio lì
    comunque risolto!!!

    la soluzione è

    codice:
    "CREATE TABLE LSVDB.dipendenti( id STRING  NOT NULL, nome  CHAR(50) NOT NULL, cognome CHAR(50) NOT NULL, ruolo CHAR(20) NULL, assunzione DATETIME NOT NULL)";

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157

    Re: Re: query in programma java

    Originariamente inviato da Alex'87
    Te le compila sul serio queste righe?

    la cosa bella è che lui non ha capito quello che tu vuoi dire e che l'errore che indica lui è un errore runtime, impossibile da ottenere con quel codice (perché quello è un errore di compilazione).
    Runtime ne puoi avere altri legati alla sintassi della query (quello che hai postato)

    in ogni caso, dubito pure io che quella stringa così come è scritta abbia compilato.
    Inoltre ti consiglio di leggere quello che ti dice il compilatore (di solito molto chiaro): ti indicava un errore di sintassi nella query che costruivi, soluzione: stampa a video la query e cerca l'errore di sintassi
    RTFM Read That F*** Manual!!!

  5. #5
    Utente di HTML.it L'avatar di Landi
    Registrato dal
    Jun 2012
    residenza
    Torino
    Messaggi
    39

    Re: Re: Re: query in programma java

    Originariamente inviato da valia

    la cosa bella è che lui non ha capito quello che tu vuoi dire e che l'errore che indica lui è un errore runtime, impossibile da ottenere con quel codice (perché quello è un errore di compilazione).
    Runtime ne puoi avere altri legati alla sintassi della query (quello che hai postato)

    in ogni caso, dubito pure io che quella stringa così come è scritta abbia compilato.
    Inoltre ti consiglio di leggere quello che ti dice il compilatore (di solito molto chiaro): ti indicava un errore di sintassi nella query che costruivi, soluzione: stampa a video la query e cerca l'errore di sintassi

    Oooook allora provo a rispiegare il problema.
    Devo creare una tabella in un database.
    Deve avere i seguenti campi
    Longitudine, Latitudine, Ragione Sociale, Indirizzo1, Indirizzo2, Numero civico, Cap, Città, Provincia/Regione, Stato, P.IVA, Codice Fiscale.
    L'istruzione in SQL è CREATE TABLE nome_tab("nome_col tipo not null, .......") è corretta?
    Mi viene segnalato un errore di sintassi e non capisco come scrivere la query.
    Ah per il web ho trovato delle istruzioni che creano la tabella solo se non ne esiste una con lo stesso nome, come faccio a fare la stessa cosa? Ci vuole qualche if?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    hai modo di accedere al database senza il tuo programma java?
    Se si scrivi la query di creazione della tabella lì e quando è funzionante ricopiala all'interno del tuo programma java.

    Ricorda che la stringa va messa tra i caratteri ", quindi come l'avevi scritta non compilava.

    codice:
    String sql = "CREATE TABLE LSVDB.dipendenti( id INTEGER  NOT NULL, nome  CHAR(50) NOT NULL, cognome CHAR(50) NOT NULL, ruolo CHAR(20) NULL, assunzione DATETIME NOT NULL)";
    se all'interno della tua stringa ci sono caratteri " devi mettere l'escape (cioè scrivi \" ) in modo da compilare la stringa correttamente.

    Questo è un errore in compilazione, non rispetti la sintassi Java. Ecco perché io ieri ridevo.

    L'altro errore è mysql, perchè la stringa che tu crei deve essere compliant con mysql (la sintassi) e questo manuale alla mano controlli come deve essere scritta.

    Non sono sicura se torna errore il fatto che provi a creare una tabella esistente o se c'è un modo per fare l'override, manuale mysql e vedi cosa dice con create table
    RTFM Read That F*** Manual!!!

  7. #7
    Utente di HTML.it L'avatar di Landi
    Registrato dal
    Jun 2012
    residenza
    Torino
    Messaggi
    39
    Originariamente inviato da valia
    hai modo di accedere al database senza il tuo programma java?
    Se si scrivi la query di creazione della tabella lì e quando è funzionante ricopiala all'interno del tuo programma java.

    Ricorda che la stringa va messa tra i caratteri ", quindi come l'avevi scritta non compilava.

    codice:
    String sql = "CREATE TABLE LSVDB.dipendenti( id INTEGER  NOT NULL, nome  CHAR(50) NOT NULL, cognome CHAR(50) NOT NULL, ruolo CHAR(20) NULL, assunzione DATETIME NOT NULL)";
    se all'interno della tua stringa ci sono caratteri " devi mettere l'escape (cioè scrivi \" ) in modo da compilare la stringa correttamente.

    Questo è un errore in compilazione, non rispetti la sintassi Java. Ecco perché io ieri ridevo.

    L'altro errore è mysql, perchè la stringa che tu crei deve essere compliant con mysql (la sintassi) e questo manuale alla mano controlli come deve essere scritta.

    Non sono sicura se torna errore il fatto che provi a creare una tabella esistente o se c'è un modo per fare l'override, manuale mysql e vedi cosa dice con create table

    Si si posso tranquillamente accedere al database questa è un'applicazione che unita ad un'altra con un'interfaccia grafica permetterà di inserire i dati.

    P.S purtroppo non ho ancora affrontato questi argomenti a scuola e sto facendo uno stage e il capo ha queste richieste...spero di farcela...grazie a tutti ocmunque

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.