关于CBoard的坑

        新公司需要数据可视化,想起之前有用过CBoard框架,故而再次把它搬出来进行开发。详情可见:

CBoard详情

        由于CBoard可以配置多个数据源,以达到连接不同的库而查询出不同数据源的数据表以进行图表展示。而实现方式是CBoard使用自己的数据库保存不同的数据源信息,连接自己的数据库采用的是mybatis方式,连接配置好的数据源采用的是jdbc方式。具体配置如下:

CBoard本身数据库配置在properties里面:

validationQuery=SELECT 1
jdbc_url=jdbc:mysql://localhost:3306/cboard?useUnicode=true&characterEncoding=UTF-8
jdbc_username=root
jdbc_password=123456

# Service configuration
dataprovider.resultLimit=300000
admin_user_id=1

配置的数据源存在数据库中:

        而现在遇到的坑是,我在从配置的数据源查询带条件的数据时,条件如果是中文的话会查不出数据,但是如果该sql直接在数据库端运行,是能查出数据的,经过一番调试,发现是jdbc使用praparestatement查询数据时,将中文变成了??然后传到了数据库,这肯定不能查出数据····

调试图如下(忽略toString(),在网上找的解决方案时写的,然并卵):

关于CBoard的坑_第1张图片

        网上的解决方案都是改字符编码来的:在数据库加上uncode和数据库字符集改成utf-8之类的,是的,这边坑的原因还确实是这样的,但是我这边却弄了好久甚至将idea的编码方式都改成了utf-8还是不行,然而早上突然吃早餐的时候想起,我在页面上查询的数据并不是CBoard的库的数据,而是其他配置好的库里面的数据,数据,数据,难道是数据的问题?!

 

        因为已经知道CBoard配置数据源时已经加号了字符集编码,而忽略的多数据源配置时编码方式了,Oh shit````

修改数据后再进行查询,终于ok了···(内容是因为这个字段的值真的是“内容”,并没有ps 捂脸(*/ω\*)):

关于CBoard的坑_第2张图片

修改字符编码的方式

你可能感兴趣的:(日常开发)