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(); %>