我在本地机子上安装了EasyJFbbs,用到的是mssql数据库,程序运行后,当注册用户时,tomcat会有以下提示:
71984 [http-8080-Processor24] ERROR com.easyjf.dbo.EasyJDBEngine - 添加数据错误 :java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer] 违反了 PRIMARY KEY 约束 'PK_UserInfo'。不能在对象 'BBSUser' 中插入重复键。:sql=i nsert into BBSUser(password,userName,intro,status,cid,sex,loginTimes,score,email ,inputTime,qq,tel,lastLoginIP) values(?,?,?,?,?,?,?,?,?,?,?,?,?)
当遇到这种情况可不用去理会它,对程序正常运行并没大碍。它只是写法上的Bug。
安装过程中也遇到过这样子的问题,就是不能回贴(回贴时数据添加不到数据库里)
解决办法: 1、把web-inf\lib中EasyDBO中的版本换成新的,确保ClasshPath中没有其它版本。 2、EasyDBO中的主键生成算法我只随便写了一个的,新版本中的主键生成使用com.easyjf.dbo.RandomIdGenerator。可能这个实现有点问题,没太多测试过,也许存在致命错误。 其中内容如下:String id=this.hashCode()+""+date.hashCode(); //System.out.println(id); return id.substring(0,16); 3、仿照RandomIdGenerator自己实现一个IIdGenerator生键生成器,然后把PO中的getKeyGenerator方法改成你自己的主键生成器。 public String getKeyGenerator() { return "com.easyjf.dbo.RandomIdGenerator"; }
如果再不行。就是把Root下的东西全部删除掉,然后重新把代码下下来,并拷到Root目录下。再配置数据库。应该没有问题了。程序本身并没有错!
|