aiuto ragazzi mi sto esaurendo!
ecco quello che ho fatto nel pomeriggio, anzi da stamattina!
insert.jsp:
codice:
<%@page import="myUtil.*"%>
<%@page import="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tabella Persona dell'utente - Risultato insert</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
<div id="container">
<ul id="nav">
[*]Home
[*]Inserisci
[*]Elimina
[*]Modifica
[*]Select
[/list]
<jsp:useBean id="persona" scope="application" class="mioPackage.persona"/>
<%
DBManager dbOracle = new DBManager("jdbc:odbc:OracleDB", "user", "tiger");//creo un'istanza di DBManager
String nome=new String(request.getParameter("nome"));
String cognome=new String(request.getParameter("cognome"));
//int eta = Integer.parseInt(request.getParameter("eta"));
String eta=new String(request.getParameter("eta"));
//String eta = Integer.toString(request.getParameter("eta"));
String citta=new String(request.getParameter("citta"));
String nazione=new String(request.getParameter("nazione"));
//dbOracle.controllaForm(nome, cognome, eta, citta, nazione);
//dbOracle.eseguiInserimento(nome, cognome, eta, citta, nazione);
String SQL = new String("");
SQL = "INSERT INTO persona VALUES (persona_seq.nextval, '"+nome+"','"+cognome+"',"+eta+",'"+citta+"','"+nazione+"')";
//dbOracle.eseguiInserimento(SQL);
//dbOracle.executeUpdate(SQL);
//out.println(SQL);
/* int errore = dbOracle.controllaForm(nome, cognome, eta, citta, nazione);
if (errore!=0)
{
out.println("<p style=\"letter-spacing:1px;\">IMPOSSIBILE ESEGUIRE INSERIMENTO</p></div>");
}
else
{
dbOracle.eseguiInserimento();
}
*/
%>
</div>
</body>
</html>
Classe DBManager nel package MyUtil:
codice:
package myUtil;
//import java.util.*;
import java.sql.*;
//import mioPackage.*;
public class DBManager {
String DbDriver;
String DbURL;
String username;
String password;
Connection conn;
/**
* Metodo che restituisce true se la connessione e' aperta.
*/
public boolean isOpen()
{
if (this.conn == null)
return false;
else
return true;
}
/**
* Costruttore della classe. Riceve l'url del driver jdbc, la username e la password
* necessari per la connessione al database.
*/
public DBManager(String url, String usn, String psw)
{
this.DbDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
this.DbURL = url;
this.username = usn;
this.password = psw;
}
private boolean startConnection()
{
if ( isOpen() )
return true;
try
{
Class.forName(DbDriver);// Carica il Driver del DBMS
conn = DriverManager.getConnection(DbURL, username, password);// Apertura connessione
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}
private boolean closeConnection()
{
if ( !isOpen() )
return true;
try
{
conn.close();
conn = null;
}
catch (SQLException e)
{
e.printStackTrace();
return false;
}
return true;
}
//public void controllaForm(String nome, String cognome, String eta, String citta, String nazione)
public int controllaForm(String nome, String cognome, String eta, String citta, String nazione)
{
int errore = 0; //se rimane pari a zero vuol dire che tutti i campi sono stati riempiti
//VERIFICO CHE I CAMPI PASSATI NON SIANO VUOTI
if (nome.length()==0){
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\">Attenzione! Non hai compilato il campo Nome!</p>");
errore = errore +1;
}
if (cognome.length()==0){
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\">Attenzione! Non hai compilato il campo Cognome!</p>");
errore = errore +1;
}
if (eta.length()==0){
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\">Attenzione! Non hai compilato il campo Età!</p>");
errore = errore +1;
}
if (citta.length()==0){
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\">Attenzione! Non hai compilato il campo Città!</p>");
errore = errore +1;
}
if (nazione.length()==0){
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\">Attenzione! Non hai compilato il campo Nazione!</p>");
errore = errore +1;
}
return errore;
}
public boolean eseguiInserimento(String SQL)
{
try
{
startConnection();
Statement st;
st = conn.createStatement();
int esito = st.executeUpdate(SQL);
if (esito == 1)
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\"> Inserimento eseguito correttamente!</p></div>");
else
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\"> Inserimento NON eseguito!</p></div>");
}
catch (SQLException e)
{
System.out.println("Error occurred " + e);
}
closeConnection();
return true;
}
/* public boolean eseguiInserimento(String nome, String cognome, String eta, String citta, String nazione)
{
String SQL = null;
SQL = "INSERT INTO persona VALUES (persona_seq.nextval, '"+nome+"','"+cognome+"',"+eta+",'"+citta+"','"+nazione+"')";
try
{
startConnection();
Statement st;
st = conn.createStatement();
int esito = st.executeUpdate(SQL);
if (esito == 1)
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\"> Inserimento eseguito correttamente!</p></div>");
else
System.out.println("
<div id=\"form\"><p align=\"center\" style=\"letter-spacing:1px; font-size:1.5em;\"> Inserimento NON eseguito!</p></div>");
}
catch (SQLException e)
{
System.out.println("Error occurred " + e);
}
closeConnection();
return true;
}
*/
/**
* Metodo che esegue una query di update o delete. Riceve la stringa sql e
* restituisce true se la query viene eseguita correttamente, false altrimenti.
*/
public boolean executeUpdate(String sql)
{
startConnection();
Statement st;
try
{
st = conn.createStatement();
st.executeUpdate(sql);
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
closeConnection();
return true;
}
/**
* Metodo che esegue una query di select. Riceve la stringa sql e la stringa che
* indica la tipologia di classe su cui si vuol restituire il vettore dei risultati.
* Restituisce il vettore dei risultati.
*/
/* public Vector<Object> executeSelect(String sql, String type)
{
startConnection();
Vector<Object> v = new Vector<Object>();
Statement st;
try
{
st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
persona p;
while( rs.next() )
{
if ( type.equals("persona") )
{
p = new persona();
p.setNome( rs.getString("NOME") );
p.setCognome( rs.getString("COGNOME") );
p.setEta( rs.getInt("ETA") );
p.setCitta( rs.getString("CITTA") );
p.setNazione( rs.getString("NAZIONE") );
//p.add(u);
}
}
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
closeConnection();
return v;
}
*/
}
l'errore che ottengocon ogni funzione è:
org.apache.jasper.JasperException: An exception occurred processing JSP page /insert.jsp at line 38
root cause
java.lang.NullPointerException
myUtil.DBManager.executeUpdate(DBManager.java:165)
org.apache.jsp.insert_jsp._jspService(insert_jsp.j ava:102)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:376)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet .java:722)