传智播客bbs项目,解决mysql中文乱码问题

       今天开始实战项目学习,先学一个bbs ,汤老师讲的,汤老师先演示了一遍已做好的项目的功能及使用。然后讲了项目用到的技术,项目的架构,用uml画了项目的类图。接着就开始配置环境,编写代码进行实现。汤老师在项目的讲解中,是和前面hibernate的讲解不一样的,汤老师会讲解一部分,就让学员自己动手去编码实现,然后再对学员遇到的问题及编码的正确写法进行讲解,效果不错。在项目中会遇到很多问题,也对前面学的基础知识进行复习,还可以学到设计模式,算法等,我以后在学习项目中会对这些进行总结,与大家分享。

 

     实际项目中遇到的问题就是多,说一个mysql的中文乱码问题,是一个学员提出的,汤老师帮助解决了,并进行了讲解。我在数据库中还没有插入过中文,还真没有发现这一问题,我试了一下我的程序,发现也有这个问题,就是对数据库表的某一字段插入中文,到数据库中去看,结果全是“?”,这自然是编码的问题。在编码问题解决中,一个重要的思想就是,用什么编码集编码,就要用什么编码集解码。我就按照汤老师解决问题的思路进行解决。首先,在mysql客户端输入status命令Server characterset:    latin1
Db     characterset:    latin1
Client characterset:     latin1
Conn.  characterset:     latin1
这就找到了问题的所在,全都是 latin1,肯定不能进行正确的中文编码,可以在mysql server文件夹中的my.ini文件中,对他们进行设置
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=utf8
default-storage-engine=innodb
重启mysql后就可以看到
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:     gbk
Conn.  characterset:    gbk
我再对数据库插入中文,程序报错,sqlException,could not insert,而插入英文没有问题,可以判断这还是数据库的问题,可以使用show create table tablename;命令,可以看到我要插入的字段后面显示character set latin1;看来还要对表中字段进行修改,在mysql query browser中的表上可以选择edit table ,双击该字段 再选择Column details,可以看到有一下拉列表框clumn Charset 选择utf8即可。

 

    在一个类的编写中,如果方法体暂时不知道该如何写,就在方法里头 写一句throws new UnsupportedOperateException。 相当于做个标记,在其他类中调用它时,通过异常就会知道这个方法还没有写代码。

你可能感兴趣的:(mysql,数据库,Hibernate,server,character,bbs)