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

    connessione a database tramite jsp

    Allora premetto che mi sono appena inscritto al forum ma lo seguo da molto tempo e mi ha spesso semplificato la vita non poco. Quindi ciao a tutti.

    Vado a spiegare il mio problema... ho una pagina jsp che mi permette l'inserimento di dati in un form, la classe associata al jsp dovrebbe inserire i dati in un database. Ma non funziona, andando per esclusione sono riuscito a risalire alla parte di codice difettosa
    codice:
    try{
    Class.forName("com.mysql.jdbc.Driver");
    db=DriverManager.getConnection("jdbc:derby://localhost:3306/nuovo","root",""); 
           }catch (Exception e) {
    setErrore(e.getMessage());            
    e.printStackTrace(); }
    il driver funziona, nome utente e psw del database sono giusti e.getMessage() mi restituisce:

    Si è verificato un errore del protocollo di rete e la connessione è stata terminata: È stato rilevato un errore di sintassi del datastream del protocollo. Causa: 0x3. È stata tentata una connessione di testo normale a un server SSL?

    che caspita significa...spero che qualcuno possa aiutarmi

  2. #2
    Scusa ma a che database vorresti connetterti, dico questo perchè carichi in memoria il driver di mysql e poi tenti la connessione verso un database "derby".
    Fai chiarezza altrimenti non penso che ne vieni a capo.

  3. #3
    allora, il database è mysql, derby è il server dove dovrebbe girare l'applicazione, Ho provato il codice all'interno di una applicazione java e funziona tutto correttamente. Mentre non funziona quando provo ad invocare il metodo che mi effetua la connessione all'interno di un jsp.

    posto il codice magari è piu chiaro (l'ide che uso è netbeans)
    questo è il jsp che chiama la funzione.
    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8"%> 
    <!DOCTYPE html> <html>   
      <head>     
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">       
     <title>JSP Page</title>    
     </head>    
     <body>         
            <jsp:useBean id="mybeandata" scope="page" class="applicazioni.database" />         <jsp:setProperty name="mybeandata" property="nome"  />     
        <jsp:setProperty name="mybeandata" property="cognome"  />       
      <jsp:setProperty name="mybeandata" property="numero"  /> 
                     <%mybeandata.connetti();%>   
          <%//mybeandata.eseguiAggiornamento();%>      
       <jsp:getProperty name="mybeandata" property="agg" />       
      <jsp:getProperty name="mybeandata" property="errore" />   
      </body> </html>
    e questa è la funzione all'interno della classe applicazioni.database

    codice:
    public void connetti(){    
        try{      
      Class.forName("com.mysql.jdbc.Driver"); 
                db=DriverManager.getConnection("jdbc:derby://localhost:3306/nuovo","root","");     
       }catch (Exception e) {          
       setErrore(e.getMessage());          
      e.printStackTrace(); }      
      }

    tuttavia al momento ho abbandonato quest'approcio e ho provato a mettere tutto il codice all'interno della pagina jsp, le cose sembrano funzionare. Anche se mi piacerebbe comunque capire che cosa c'è che non andava, cosi per imparare.

    questo è lo spezzone di codice che sto usando al posto di quello scritto sopra e funziona.
    codice:
    <%@ page language="java" import="java.sql.*" %> 
    <%@ include file="index.jsp" %> 
    <html> <head><title>Database</title></head>
     <body><h3>Accesso</h3> <% String nome=request.getParameter("nome"); 
    String cognome=request.getParameter("cognome"); 
    int numero=Integer.parseInt(request.getParameter("numero")); //caricamento driver Class.forName("com.mysql.jdbc.Driver");
     //apertura connessione 
    Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306","root","");
     Statement stmt = cn.createStatement(); 
    String v="\'"; 
    String sql="insert into nuovo.persona values ("+v+nome+v+","+v+cognome+v+","+numero+");"; 
    out.write(sql); stmt.executeUpdate(sql);  
     stmt.close(); cn.close();    %>

  4. #4
    Originariamente inviato da theToky182
    allora, il database è mysql, derby è il server dove dovrebbe girare l'applicazione,
    Mi sa che stai facendo una grande confusione....
    Sia derby che mysql sono due database (forse chiamare derby database è un po eccessivo).
    Il problema appunto sta nel fatto che da una parte (nella bean) carichi il driver di mysql ma poi nella stringa di connessione metti derby:...
    codice:
     Class.forName("com.mysql.jdbc.Driver"); 
     db=DriverManager.getConnection("jdbc:derby://localhost:3306/nuovo","root","");
    Mentre nella pagina fai tutto correttamente, cioè carichi il driver di mysql e specifichi un url di connessione mysql
    codice:
     Class.forName("com.mysql.jdbc.Driver"); 
     db=DriverManager.getConnection("jdbc:mysql://localhost:3306/nuovo","root","");

  5. #5
    ahahah si in effetti di confusione ne sto facendo parecchia...può capitare visto che non ho molta confidenza con i database...cmq si era proprio quello il problema, ora ho risolto! grazie 1.000.000

  6. #6
    Il problema non è il database (in effetti questa discussione andrebbe spostata nel forum java) ma la stringa di connessione che utilizzavi per connetterti quindi ergo era un problema più legato a jdbc che ai database.
    Consiglio riprendi un po i libri i mano... Programmatori non ci si improvvisa.....

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.