Buon pomeriggio,
mi sto avvicinando a java e sto provando un piccolo programmino che si colleghi ad un db my sql ma mi da un errore sul set di caratteri. l'errore che mi da è questo :
java.sql.SQLException: Can not call getNString() when field's charset isn't UTF-8
at com.mysql.jdbc.JDBC4ResultSet.getNString(JDBC4Resu ltSet.java:218)
at testdb.connessione.eseguiQuery(connessione.java:65 )
at testdb.Test.main(Test.java:23)

le 2 classi del programma sono queste :
connessione.java
codice:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package testdb;

/**
 *
 * @author daniele
 */
import java.sql.*;
import java.util.*;


public class connessione 
{
    private String nomeDb;             //nome del database
    private String nomeUtente;         //nome utente
    private String pwdUtente;          //password utente 
    private boolean connesso;          //stato connessione
    private Connection db;             //connessione con il database 
    private String errore;             //raccoglie info su eventuali errori
    
    public connessione(String nomeDb, String nomeUtente, String pwdUtente)    //costruttore connessione
    {
        this.nomeDb = nomeDb;
        this.nomeUtente = nomeUtente;
        this.pwdUtente = pwdUtente;
        connesso=false;
        errore="";
    }
    
    public boolean connetti()
    {
        connesso=false;
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDb + "?user=" + nomeUtente +"&password=" + pwdUtente);
            connesso=true;
        }
        catch(Exception e)
        {
            errore=(e.getMessage());
            System.out.println(errore);
        }
        return connesso;
    }
    
    public Vector eseguiQuery(String query)
    {
       Vector vettore =null;
       String [] record;
       int colonne=0;
       try
       {
       Statement stmt = db.createStatement();
       ResultSet rs = stmt.executeQuery(query);
       vettore = new Vector();
       ResultSetMetaData rsmd = rs.getMetaData();
       colonne = rsmd.getColumnCount();
       while(rs.next()==true)
       {
           record=new String[colonne];
           for(int i=0;i<colonne;i++) record[i] = rs.getNString(i+1);
           vettore.add((String[]) record.clone());
           
       }
       rs.close();
       stmt.close();
            
       }
       catch(Exception e)
       {
           e.printStackTrace();
       }
       return vettore;
     }
}
test.java
codice:
/**
 *
 * @author daniele
 */
import java.util.*;

public class Test {
    
    public static void main(String args[])
    {
        connessione db = new connessione("vetturaSostitutiva","root","admin");
        if(!db.connetti())
        {
            System.out.println("Errore di connessione");
            System.exit(0);
        }
        Vector vettore = db.eseguiQuery("select * from cliente");
        int i;
        i = 0;
        while ( i<vettore.size() ) {
            String[] record = (String[]) vettore.elementAt(i);
            System.out.println("Record numero " + (i+1) );
            for (int j=0; j<record.length; j++) {
            System.out.println( record[j] );
            i++;
   }
   }
   }
}
qualcuno sa darmi una mano? ho provato a settare tutte le tabelle di mysql in UTF8 ma senza alcun risultato...