JDBC: Inserindo caracteres Unicode UTF-8 no MySQL

Apenas um aviso rápido se você estiver procurando inserir, por exemplo, caracteres chineses em um banco de dados MySQL.

Caso:

você está usando JDBC para inserir strings com caracteres Unicode de seu aplicativo Java e está vendo ??? ou strings vazias em vez de 是 ou 了 em seu banco de dados.

Como consertar:

Primeiro:
se o seu aplicativo Java estiver lendo os dados, por exemplo, de um arquivo de texto. Certifique-se de ter especificado a codificação de caracteres correta em sua chamada para o fluxo de entrada. Deve ser parecido com isto:

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8" )  );

Segundo:
certifique-se de informar ao JDBC qual codificação usar. Isso é feito como parte da string de consulta ao se conectar ao banco de dados.

Observe esta parte 😕 UseUnicode = yes & characterEncoding = UTF-8 . É aqui que a mágica acontece.

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?useUnicode=yes&characterEncoding=UTF-8","username", "password");

Terceiro:
certifique-se de que sua mesa usa UTF-8. Eu costumo usar “Codificação: UTF-8 Unicode (utf8)” e “Agrupamento: utf8_bin”

Saúde, que

o código esteja com você!