Buongiorno,
Ho creato un database in mysql con frontend in java, il problema è che se inserisco un carattere accentato tipo "è" mi ritorna il classico punto interrogativo.
ho fatto alcune prove....nella jtextarea al momento dell'immissione viene visualizzato correttamente....così come nella console...e così anche nel database....solo quando richiamo per visualizzare il tutto mi ritorna il carattere sbagliato, sia java che mysql sono dettati per utf-8...di seguito alcuni screenshot:
Scrive correttamente a video:
Schermata 2016-09-30 alle 13.57.17.png
Richiamandolo...si vede il ?:
2.jpg
se ispeziono il contenuto con workbench....si vede che in mysql è memorizzato correttamente....quindi è un problema di quando richiedo i dati.
il codice è questo:
codice:
public class MysqlStuff {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL ="jdbc:mysql://localhost/";
static final String db= "LessonLearned";
static final String u ="xxxxx";
static final String p= "xxxxx";
static Connection UP=null;
public static Connection connetti()
throws ClassNotFoundException, SQLException{
System.out.println("mi connetto...");
UP = null;
Class.forName(JDBC_DRIVER);
//punto 3 ottenere connessione
UP = DriverManager.getConnection(DB_URL+db,u,p);
return UP;
}
codice:
public static void inviaDatiSQL(String sql,String stat) throws SQLException, ClassNotFoundException{ UP = connetti();
System.out.println("INVIO dati a DB: \n"+ sql);
Statement stmt = null;
PreparedStatement test = UP.prepareStatement(sql);
test.setString(1, stat);
test.executeUpdate();
System.out.println("Finito !");
}
codice:
public static ResultSet richiediDatiSQL (String sql) throws SQLException, ClassNotFoundException{ UP = connetti();
System.out.println("RICHIEDO dati a DB: \n\n"+ sql);
Statement stmt = null;
ResultSet res = null;
stmt = UP.createStatement();
res = stmt.executeQuery(sql);
return res;
}