Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [JAVA]problema con connessione a DB che prima non c'era

    Salve,
    il mio problema è questo:
    ho fatto, un'applicazione che interagisce con un db, questo usando eclipse base.
    Ora ho creato, in eclipse galileo, usando come server jetty, delle servlet che fanno la stessa cosa, quindi
    con lo stesso codice per l'interazione con il db.

    Come mai ora mi viene dato questo errore?

    Type mismatch: cannot convert from java.sql.Connection to com.mysql.jdbc.Connection

    e mi chiede di castare tutto ciò che è legato alla connessione?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Prova a darci il tuo codice, senza è un po difficile

  3. #3
    Forse devo cambiare il tipo della connessione?

    La classe non è terminata, il problema ora è la connessione.
    Comunque, eccolo:

    [code]
    public class Persona extends HttpServlet{
    static int attivo;

    static double lat;

    static double lon;

    static int codChip;

    static String nomeDB = "localizzazione";

    static String surname;

    static String name;

    static String istituto;

    static int stanza;

    static int telefono;

    static int count;

    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {

    ServletOutputStream out = res.getOutputStream();
    res.setContentType("text/html");
    String cognome = req.getParameter("cognome");
    String nome = req.getParameter("nome");

    // Connessione al database
    Connection connDb = null;

    // Prepara lo statement per lanciare il comando al database
    PreparedStatement comandoSQL; // SQL

    // Set di record risultante (elenco di righe della tabella che
    // soddisfano il criterio della SELECT). SOLO PER LA QUERY SELECT!
    ResultSet rsQuery; // Set di record
    ResultSet risQuery;
    ResultSet rslQuery;
    String SQL;
    try {
    // Creazione di una istanza MySQL
    Class.forName("com.mysql.jdbc.Driver").newInstance ();
    // Apertura della connessione al database
    connDb = DriverManager.getConnection("jdbc:mysql://127.0.0.1/"
    + nomeDB, "root", "manuela");
    // Chiedo al db il chip della persona
    SQL = "SELECT Cod_Chip, Attivo from ChipInterni WHERE Cognome='"
    + cognome + "' and Nome='" + nome + "';";
    comandoSQL = connDb.prepareStatement(SQL);
    rsQuery = comandoSQL.executeQuery();
    // Creo il vettore risultato scorrendo tutto il ResultSet
    while (rsQuery.next()) {
    codChip = rsQuery.getInt(1);
    attivo = rsQuery.getInt(2);
    }
    if (attivo != 0) {
    SQL = "SELECT COUNT(Cod_Chip) FROM Coordinate where Cod_Chip = '"
    + codChip + "';";
    comandoSQL = connDb.prepareStatement(SQL);
    rslQuery = comandoSQL.executeQuery();
    while (rslQuery.next()) {
    count = rslQuery.getInt(1);
    // Chiedo al db le coordinate del chip precedentemente
    // chiesto
    SQL = "SELECT Lat, Lon, Tempo FROM Coordinate WHERE Cod_Chip='"
    + codChip
    + "' ORDER BY Tempo LIMIT "
    + (count - 1)
    + ",1;";
    comandoSQL = connDb.prepareStatement(SQL);
    risQuery = comandoSQL.executeQuery();
    while (risQuery.next()) {
    lat = risQuery.getDouble(1);
    lon = risQuery.getDouble(2);
    }
    //modificare in base ai valori restituiti dal DB (puntino di localizzazione)
    out.println("<HEAD><TITLE> Localizzazione </TITLE></HEAD><BODY>");
    out.println("<h1> CNR_Localizzazione_risultato </h1>");
    out.println("Hai inserito: "+cognome+", "+nome);
    out.println("</BODY>");

    // Chiedo ed estraggo le informazioni sulla persona cercata
    // e
    // trovata
    // Chiedo al db le informazioni circa la persona voluta
    SQL = "SELECT Cognome, Nome, Istituto, N_Stanza, N_Telefono from PersoneInterne WHERE Cod_Chip='"
    + codChip + "';";
    comandoSQL = connDb.prepareStatement(SQL);
    rsQuery = comandoSQL.executeQuery();
    while (rsQuery.next()) {
    surname = rsQuery.getString(1);
    name = rsQuery.getString(2);
    istituto = rsQuery.getString(3);
    stanza = rsQuery.getInt(4);
    telefono = rsQuery.getInt(5);
    }

    //modificare in base ai valori restituiti dal DB (dati circa la persona)
    out.println("<HEAD><TITLE> Localizzazione </TITLE></HEAD><BODY>");
    out.println("<h1> CNR_Localizzazione_risultato </h1>");
    out.println("Hai inserito: "+cognome+", "+nome);
    out.println("</BODY>");
    }
    } else
    System.out.println("La persona non è stata trovata");
    connDb.close();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (InstantiationException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    }
    }

    [code]

  4. #4
    Scusa ho sbagliato

    codice:
    public class Persona extends HttpServlet{
    	static int attivo;
    
    	static double lat;
    
    	static double lon;
    
    	static int codChip;
    
    	static String nomeDB = "localizzazione";
    
    	static String surname;
    
    	static String name;
    
    	static String istituto;
    
    	static int stanza;
    
    	static int telefono;
    
    	static int count;
    	
    	private static final long serialVersionUID = 1L;
    
    	public void doGet(HttpServletRequest req, HttpServletResponse res)
    	throws ServletException, IOException {
    		
    		ServletOutputStream out = res.getOutputStream();
    		res.setContentType("text/html");
    		String cognome = req.getParameter("cognome");
    		String nome = req.getParameter("nome");
    		
    		// Connessione al database
    		Connection connDb = null;
    
    		// Prepara lo statement per lanciare il comando al database
    		PreparedStatement comandoSQL; // SQL
    
    		// Set di record risultante (elenco di righe della tabella che
    		// soddisfano il criterio della SELECT). SOLO PER LA QUERY SELECT!
    		ResultSet rsQuery; // Set di record
    		ResultSet risQuery;
    		ResultSet rslQuery;
    		String SQL;
    		try {
    			// Creazione di una istanza MySQL
    			Class.forName("com.mysql.jdbc.Driver").newInstance();
    			// Apertura della connessione al database
    			connDb = DriverManager.getConnection("jdbc:mysql://127.0.0.1/"
    					+ nomeDB, "root", "manuela");
    			// Chiedo al db il chip della persona
    			SQL = "SELECT Cod_Chip, Attivo from ChipInterni WHERE Cognome='"
    					+ cognome + "' and Nome='" + nome + "';";
    			comandoSQL = connDb.prepareStatement(SQL);
    			rsQuery = comandoSQL.executeQuery();
    			// Creo il vettore risultato scorrendo tutto il ResultSet
    			while (rsQuery.next()) {
    				codChip = rsQuery.getInt(1);
    				attivo = rsQuery.getInt(2);
    			}
    			if (attivo != 0) {
    				SQL = "SELECT COUNT(Cod_Chip) FROM Coordinate where Cod_Chip = '"
    						+ codChip + "';";
    				comandoSQL = connDb.prepareStatement(SQL);
    				rslQuery = comandoSQL.executeQuery();
    				while (rslQuery.next()) {
    					count = rslQuery.getInt(1);
    					// Chiedo al db le coordinate del chip precedentemente
    					// chiesto
    					SQL = "SELECT Lat, Lon, Tempo FROM Coordinate WHERE Cod_Chip='"
    							+ codChip
    							+ "' ORDER BY Tempo LIMIT "
    							+ (count - 1)
    							+ ",1;";
    					comandoSQL = connDb.prepareStatement(SQL);
    					risQuery = comandoSQL.executeQuery();
    					while (risQuery.next()) {
    						lat = risQuery.getDouble(1);
    						lon = risQuery.getDouble(2);
    					}
    					//modificare in base ai valori restituiti dal DB (puntino di localizzazione)
    					out.println("<HEAD><TITLE> Localizzazione </TITLE></HEAD><BODY>");
    					out.println("<h1> CNR_Localizzazione_risultato </h1>");
    					out.println("Hai inserito: "+cognome+", "+nome);
    					out.println("</BODY>");
    
    					// Chiedo ed estraggo le informazioni sulla persona cercata
    					// e
    					// trovata
    					// Chiedo al db le informazioni circa la persona voluta
    					SQL = "SELECT Cognome, Nome, Istituto, N_Stanza, N_Telefono from PersoneInterne WHERE Cod_Chip='"
    							+ codChip + "';";
    					comandoSQL = connDb.prepareStatement(SQL);
    					rsQuery = comandoSQL.executeQuery();
    					while (rsQuery.next()) {
    						surname = rsQuery.getString(1);
    						name = rsQuery.getString(2);
    						istituto = rsQuery.getString(3);
    						stanza = rsQuery.getInt(4);
    						telefono = rsQuery.getInt(5);
    					}
    					
    					//modificare in base ai valori restituiti dal DB (dati circa la persona)
    					out.println("<HEAD><TITLE> Localizzazione </TITLE></HEAD><BODY>");
    					out.println("<h1> CNR_Localizzazione_risultato </h1>");
    					out.println("Hai inserito: "+cognome+", "+nome);
    					out.println("</BODY>");
    				}
    			} else
    				System.out.println("La persona non è stata trovata");
    			connDb.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		} catch (InstantiationException e) {
    			e.printStackTrace();
    		} catch (IllegalAccessException e) {
    			e.printStackTrace();
    		}
    	}

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    hai provato ad eseguire Questo thread? e riportare il tutto semplicemente dentro alla servlet?

  6. #6
    Il fatto è che, il codice della connessione e interazione con il db,
    fuori dalla servlet, funziona benissimo!

    Quindi mi chiedo: come mai dentro no?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.