I found the insert error when execute the following method which copied from the DBLoginMySQL template. Please advise.
#ERROR
com.electrotank.electroserver5.examples.dblogin.Co ntroller - start addnewusername
2012-Jul-20 13:38:24:492 [New I/O server worker #1-1] ERROR com.electrotank.electroserver5.examples.dblogin.Co ntroller - Controller.registerNewUser error:
2012-Jul-20 13:38:24:495 [New I/O server worker #1-1] DEBUG Extensions.DBLoginMySQL.Plugins.DatabasePlugin - result name = DatabaseError
#Controller.java
public LoginResultEnum registerNewUser(final String username, final String zoneid, final String roomid, final String logintime, final String createby, final String logouttime, final String updateby, final String remark) {
UserObject userinroomlist = new UserObject();
userinroomlist.setUsername(username);
userinroomlist.setZoneid(zoneid);
userinroomlist.setRoomid(roomid);
userinroomlist.setLogintime(logintime);
userinroomlist.setCreateby(createby);
userinroomlist.setLogouttime(logouttime);
userinroomlist.setUpdateby(updateby);
userinroomlist.setRemark(remark);
synchronized (this) {
UserObject otherUser = getUserInfo(username);
//if (otherUser == null) {
// register
try {
getDbi().inTransaction(new TransactionCallback<Object>() {
@Override
public Object inTransaction(Handle handle, TransactionStatus status) throws Exception {
addNewUsername(handle, username, zoneid,roomid,logintime,createby,logouttime,update by,remark);
return null;
}
});
} catch (Throwable t) {
logger.error("Controller.registerNewUser error: ", t.getMessage());
t.printStackTrace();
return LoginResultEnum.DatabaseError;
}
return LoginResultEnum.Approved;
//} //else if (otherUser.doesPasswordMatch(password)) {
//return LoginResultEnum.AlreadyRegistered;
//}
//else {
// return LoginResultEnum.UsernameTaken;
//}
}
}
private void addNewUsername(Handle handle, String userName, String zoneid, String roomid, String logintime, String createby, String logouttime, String updateby, String remark) {
logger.debug(userName);
logger.debug(zoneid);
logger.debug(roomid);
logger.debug(logintime);
logger.debug(createby);
logger.debug(logouttime);
logger.debug(updateby);
logger.debug(remark);
logger.debug("start addnewusername");
handle.createStatement("sql/AddNewUsername.sql")
.bind("username", userName)
.bind("zoneid", zoneid)
.bind("roomid", roomid)
.bind("logintime", logintime)
.bind("createby", createby)
.bind("logouttime", logouttime)
.bind("updateby", updateby)
.bind("remark", remark)
.execute();
logger.debug("addNewUsername completed");
}
But I can login to the mysql db server and use the same user to insert the table with successfully, why ?? What does the error mean ?


Reply With Quote
