第一次做的javaweb项目中,遇到了一个奇怪的问题:在sql语句正确和其他语句也没有错的情况下,即使输入了正确的账号和密码还是显示登录不成功,经过一步步的调试,debug才发现没有查到从数据库里面查到数据。但当我把源码发给其他人的在其他环境下运行是没有问题的,这样证明了缩写的Java代码是没有错误的。
在打断点调试时发现了sql语句本来应该时一个问号的,但是在预处理执行之后变成了两个问号了,在查了很多资料之后发现原来时数据库在没有处理有中文时的情况,我将中文的数据改成英文的就查到数据了。
应该在一开始时就设置字符集:
create database test [default character set='utf8'];
某一张表格需要些中文:
CREATE TABLE 表名(
列名 类型 长度,
列名 类型 长度,
列名 类型 长度
) character set ‘utf8’ [collate utf8_genral_ci];-----"[ ]"说明排序方式
综上吸取教训:若数据库里用到了中文,记得处理字符集问题。