一尘不染

如何在DBCP中使用(useUnicode = yes characterEncoding = UTF-8)

mysql

我正在尝试在mysql数据库中插入阿拉伯字母,但是只存储“ ????”。我正在使用DBCP与mysql数据库连接,这是数据源:

          <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"/>

如何在DBCP配置中设置UTF-8编码或如何使用(useUnicode = yes characterEncoding = UTF-8)?


阅读 322

收藏
2020-05-17

共1个答案

一尘不染

根据DBCP文档,您需要使用connectionProperties带有value
的参数[propertyName=propertyValue;]*,因此在这种情况下,您应该使用类似以下内容的方法:

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

(注意结束;!)

2020-05-17