poolpreparedstatements org maxtotal dbcp2 dbcp commons basicdatasource java mysql apache-commons-dbcp

java - org - cómo usar(useUnicode=yes characterEncoding=UTF-8) con DBCP



org.apache.commons.dbcp.basicdatasource spring (3)

De acuerdo con la documentación de DBCP , necesita usar el parámetro connectionProperties con el valor [propertyName=propertyValue;]* , por lo que en su caso debe usar algo como:

driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/view_db" connectionProperties="useUnicode=yes;characterEncoding=utf8;" maxActive="50"

(note el cierre;!)

Estoy tratando de insertar una letra árabe en la base de datos mysql, pero solo almacena "????". Estoy utilizando DBCP para conectar con mysql databse, aquí está la fuente de datos:

<Resource name="jdbc/view_db" auth="Container" type="javax.sql.DataSource" username="root" password="" autoReconnect="true" testOnBorrow="true" validationQuery = "SELECT 1" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/view_db" maxActive="50" maxIdle="10"/>

¿Cómo configurar la codificación UTF-8 con en la configuración DBCP o cómo usar (useUnicode = yes characterEncoding = UTF-8)?


Especifíquelo en el parámetro url , así:

url="jdbc:mysql://localhost/view_db?useUnicode=yes&amp;characterEncoding=utf8"


Intenté lo siguiente y me funcionó con Tomcat 7.0.40 y MySQL 5.5 en Debian Wheezy Box:

url="jdbc:mysql://localhost:3306/mydb?useUnicode=true&amp;characterEncoding=utf8"

Tenga en cuenta que & debe representarse como & amp;

también asegúrese de que su my.cnf para su servidor mysql tenga las siguientes líneas:

[client] default-character-set=utf8 [mysql] default-character-set=utf8