Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-09-2011, 21:19   #1
Caterpillar86
Senior Member
 
L'Avatar di Caterpillar86
 
Iscritto dal: Oct 2004
Messaggi: 1603
JSF + JDBC-MySQL

Sto sviluppando pagine xhtml con JavaServerFaces con l'aiuto di questo libro:
http://horstmann.com/corejsf/
In questo istante sto testando la visualizzazione di tabelle di database su pagina web.

Tuttavia ho dei problemi. Ora vi illustro da zero la procedura che ho seguito.
Da Eclipse:
Nuovo->Dynamic web project
Proprietà-> facet progetto->abilito JSF 2.0
vado su WebContent->WEB-INF->faces-config.xml (apro da interfaccia grafica)
Scheda ManagedBean->aggiungi->creo la classe Database con RequestScope
Dentro Database.java c'è:

Codice:
package classes;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;
import javax.sql.rowset.CachedRowSet;
import javax.annotation.Resource;


@ManagedBean
@RequestScoped
public class Database
{
	private static Statement statement = null;
	private static Connection connection = null;
	private ResultSet result = null;
	
	public static void main(String[] args)
	{
		try
		{
			connection = getConnection();
			statement = connection.createStatement();
	        Statement stmt = connection.createStatement();        
	        ResultSet result = stmt.executeQuery("SELECT * FROM tabella");
	        while(result.next())
	        {
	        	System.out.println(result.getNString(1));
	        }
	        System.out.println("\n");
	        ResultSet result2 = stmt.executeQuery("SELECT * FROM tabella");
	        while(result2.next())
	        {
	        	System.out.println(result2.getString(1));
	        }
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
		
	}
	
	/*public ResultSet getAll()
	{
		try
		{
			connection = getConnection();
			statement = connection.createStatement();
	        Statement stmt = connection.createStatement();        
	        ResultSet result = stmt.executeQuery("SELECT * FROM tabella");
	        CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl();
	        crs.populate(result);
	        
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			return crs;
			connection.close();
		}
	}*/
	
	
	public ResultSet getAll() throws SQLException, IOException
	{
		//try
		//{
			connection = getConnection();
			statement = connection.createStatement();
	        Statement stmt = connection.createStatement();        
	        ResultSet result = stmt.executeQuery("SELECT * FROM tabella");
	        CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl();
	        crs.populate(result);
	        return crs;
		//}
		/*finally
		{
			connection.close();
		}*/
		
	}


	/**
	   Gets a connection from the properties specified
	   in the file database.properties
	   @return the database connection
	*/
	public static Connection getConnection()
	   throws SQLException, IOException
	{  
	   Properties props = new Properties();
	   FileInputStream in = new FileInputStream("/home/caterpillar/workspace/cancTestDatabaseExNovo/database.properties");
	   props.load(in);
	   in.close();
	
	   String drivers = props.getProperty("jdbc.drivers");
	   if (drivers != null)
	      System.setProperty("jdbc.drivers", drivers);
	   String url = props.getProperty("jdbc.url");
	   String username = props.getProperty("jdbc.username");
	   String password = props.getProperty("jdbc.password");
	
	   return DriverManager.getConnection(url, username, password);
	}
	private PreparedStatement insertStatement;
	private PreparedStatement rispostaStatement;
	private static final String insertString = "INSERT INTO (?) VALUES (?, ?)";
	private static final String insertStringV2 = "INSERT INTO (?) VALUES (?)";
	private static final String risposta = "SELECT * FROM tabella";
}
Dentro database.properties c'è:

Codice:
jdbc.drivers=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=nascosto
Dentro index.xhtml c'è:
Codice:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core" 
      xmlns:h="http://java.sun.com/jsf/html">
   <h:head>

      <title>pageTitle</title>
   </h:head>
   <h:body>
	  <h:form>
         <h:dataTable value="#{database.all}" var="lista">
            
            <h:column>
               #{lista.Parola}
            </h:column>

         </h:dataTable>
      </h:form>
   </h:body>
</html>
Siccome dentro la cartella di /lib di Tomcat c'è il mysql-connector, sapreste spiegarmi perchè esce fuori questo messaggio di errore quando faccio partire index.xhtml?
Quote:
An Error Occurred:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8

Caused by:
java.sql.SQLException - No suitable driver found for jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
È più di un giorno intero che sto dietro a questo errore ed altri che sono usciti fuori nelle varie prove........


Lo StackTrace dice:
Codice:
javax.faces.FacesException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
	at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241)
	at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:258)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
	at java.sql.DriverManager.getConnection(DriverManager.java:640)
	at java.sql.DriverManager.getConnection(DriverManager.java:200)
	at classes.Database.getConnection(Database.java:126)
	at classes.Database.getAll(Database.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:87)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:243)
	at javax.faces.component.UIData.getValue(UIData.java:1153)
	at javax.faces.component.UIData.createDataModel(UIData.java:1101)
	at javax.faces.component.UIData.getDataModel(UIData.java:1078)
	at javax.faces.component.UIData.getRowCount(UIData.java:457)
	at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:289)
	at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:173)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:488)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:609)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:614)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:614)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:614)
	at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1159)
	at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:263)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:85)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
	... 17 more
Il file web.xml l'ho lasciato così come l'ha creato Eclipse, tanto ci dovrebbe pensare lui a quello

Ultima modifica di Caterpillar86 : 29-09-2011 alle 21:22.
Caterpillar86 è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 14:14   #2
Caterpillar86
Senior Member
 
L'Avatar di Caterpillar86
 
Iscritto dal: Oct 2004
Messaggi: 1603
Ho risolto mettendo la riga
Codice:
System.out.println(insertStatement.toString());
nel public static Connection getConnection()
Caterpillar86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v