com.mysql.jdbc.SingleByteCharsetConverter错误解决办法

java.io.CharConversionException
   at gnu.gcj.convert.Input_iconv.read(libgcj.so.81)
   at java.lang.String.init(libgcj.so.81)
   at java.lang.String.<init>(libgcj.so.81)
   at com.mysql.jdbc.SingleByteCharsetConverter.<init>(SingleByteCharsetConverter.java:153)
   at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverter.java:108)
   at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverter.java:86)
   at com.mysql.jdbc.Connection.getCharsetConverter(Connection.java:3471)
   at com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:5702)
   at com.mysql.jdbc.ResultSet.getString(ResultSet.java:5597)
   at com.XXX.se.clustering.db.Dao.refillVector(Dao.java:128)
   at com.XXX.se.clustering.db.Dao.getResult(Dao.java:110)
   at com.XXX.se.clustering.deriver.Test.main(Test.java:41)

这种问题是因为 java访问的字符集和mysql字符集不一致的原因。

一般mysql缺省字符集是latin1。 但是 eclipse中java缺省的是utf8所以访问时会有问题出现这个错误。

1.修改服务器级
a. 临时更改:
mysql>SET GLOBAL character_set_server=utf8;
b. 永久更改:
shell>vi /etc/my.cnf
[mysqld]
default-character-set=utf8
2.修改数据库级
a. 临时更改:
mysql>SET GLOBAL character_set_database=utf8;
b. 永久更改:
改了服务器级就可以了
3.修改表级
mysql>ALTER TABLE table_name DEFAULT CHARSET utf8;
更改了后永久生效
4.修改列级
修改示例:
mysql>ALTER
TABLE `products` CHANGE `products_model` `products_model` VARCHAR( 20 )
CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
更改了后永久生效
5.更改连接字符集
a. 临时更改:
mysql> SET NAMES utf8;
b. 永久更改:
shell>vi /etc/my.cnf
在[client]中增加:
default-character-set=utf8
               

注意:
mysql字符集
有 database,table,column,connection,client.
这几个要改一起改。
特别是 列级的经常忘记修改。
当访问数据的时候 还是会出现这个问题。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: com.mysql.cj.jdbc.driver是MySQL数据库的Java驱动程序,用于将Java应用程序连接到MySQL数据库。下载com.mysql.cj.jdbc.driver可以使开发人员在Java应用程序中使用MySQL作为其数据库。可以在MySQL官方网站或其他第三方网站上找到可下载的com.mysql.cj.jdbc.driver文件。一般情况下,下载com.mysql.cj.jdbc.driver时需要选择与当前使用的Java版本兼容的文件,以免出现兼容性问题。下载后,将com.mysql.cj.jdbc.driver添加到Java应用程序的类路径下,即可使用Java代码连接到MySQL数据库,并执行各种数据库操作,例如查询、插入、更新和删除数据。为了确保安全性和性能,建议使用最新版本的com.mysql.cj.jdbc.driver,并检查安装过程中是否有任何警告或错误信息。 ### 回答2: com.mysql.cj.jdbc.driver是Mysql驱动程序的一个类名。该驱动程序是连接Java应用程序与Mysql数据库的桥梁,负责将Java程序与Mysql数据库之间的通信进行处理。 为了使用com.mysql.cj.jdbc.driver,我们需要首先下载Mysql驱动程序并安装。通常我们可以从Mysql官网上下载最新版本的驱动程序。下载完成后,我们需要将驱动程序的JAR文件保存到Java应用程序的classpath路径下。然后,在Java应用程序中导入com.mysql.cj.jdbc.driver类,就可以通过该类来连接Mysql数据库了。 在进行Mysql数据库开发时,com.mysql.cj.jdbc.driver是非常重要的一个类。它提供了各种方法,包括连接数据库、执行SQL语句、获取查询结果等等,这些方法可以帮助我们在Java应用程序中轻松地操作Mysql数据库。 总之,如果想要开发Java应用程序与Mysql数据库的交互,就需要下载com.mysql.cj.jdbc.driver,这是连接Java应用程序与Mysql数据库的重要工具之一。 ### 回答3: 首先,com.mysql.cj.jdbc.driver是MySQL官方提供的Java驱动程序,它是Java应用程序与MySQL数据库服务器之间的连接器。使用Java连接MySQL数据库时必须使用MySQL提供的Java驱动程序。com.mysql.cj.jdbc.driver是其中一个驱动程序版本。 在使用Java连接MySQL数据库时,需要先到MySQL官方网站下载com.mysql.cj.jdbc.driver驱动程序。下载后,将其添加到Java项目的类路径即可使用。 在下载com.mysql.cj.jdbc.driver之前,需要先确定MySQL数据库的版本号和Java开发环境的版本号,以免发生兼容性问题。在下载驱动程序时,需要选择与自己实际情况相符的版本。 在将com.mysql.cj.jdbc.driver添加到Java项目时,可以将其复制到项目的lib目录下,或通过Maven等依赖管理工具将其添加到项目中。添加完毕后,需要更新项目的classpath或重新构建项目,以便让Java虚拟机能够找到并加载驱动程序。 总之,com.mysql.cj.jdbc.driver是连接JavaMySQL之间的桥梁,是JavaMySQL交互的重要组成部分,需要下载并正确添加到Java项目中才能发挥其作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值