MySQL+Java使用心得(1)

今天做毕设,使用的是MySQL数据库,遇到了乱码问题,自己通过查资料解决了,现在将自己的学习成果记录在这里。

1.首先网页使用utf8编码

2.数据库字符集要要用utf8这样可以统一,因为如果二者不统一,就会乱码

3.其次,post默认传递参数是按照iso-8859-1编码,所以一定要编写字符处理函数

  logname = request.getParameter("logname");

  logname = handleString(logname);

  public String handleString(String s){

  try{

       byte bb[] = s.getBytes("iso-8859-1");

       s = new String(bb,"utf-8");

  }catch(Exception ee){}

    return s;

  }

4.即使这样,库里面的内容可以正确写入,但是读出来的时候却是乱码,处理方法如下:

  String uri = "jdbc:mysql://localhost/MakeFriend?useUnicode=true&characterEncoding=utf-8";

  在连接库的时候加上额外的参数

5.还有,mysql控制台默认不显示汉字,所以,即使库里的内容正确,也会显示乱码,

处理方法如下:

在mysql的目录下,有个my.ini的文件,打开将default-character-set=latin1改为

default-character-set=gbk 注意:有两处需要改动。改动完成后,重启mysql服务,即可解决问题

6.在数据库中建表的时候可能会出现不允许在建表时添加外键的情况,处理方法如下:

例如我要建个表table <curriculum>,主键为classId,外键为三个:teacherId,majorId,gradeId分别参考于<teacer>表、<major>表、<grade>表

操作步骤为:

create table curriculum

(classId varchar(10) primary key,

className varchar(20) 

teacherid varchar(10),

majorId varchar(10),

gradeId varchar(10),

);

alter table curriculum
add constraint `fk_teacherId` foreign key (`teacherId`) references  teacher(`teacherId`);
 
alter table curriculum
add constraint `fk_gradeId` foreign key (`gradeId`) references  grade(`gradeId`);
 
alter table curriculum
add constraint `fk_majorId` foreign key (`majorId`) references major(`majorId`);
原文地址:https://www.cnblogs.com/upcyaya/p/2442996.html