android - Inserted row missing after application restarts -
i using ormlite insertion using code below:
protected void registeruser(edittext fullname, edittext email, edittext mobile, edittext username, edittext password) { //perform db call insert records user user = new user(); user.setfullname(fullname.gettext().tostring()); user.setemail(email.gettext().tostring()); user.setmobile(mobile.gettext().tostring()); user.setusername(username.gettext().tostring()); user.setpassword(password.gettext().tostring()); dbmanager.getinstance().adduser(user); } but after restarting application, above record missing , login fails. use following code authenticate , works existing records.
public boolean login(string username, string password) { boolean validlogin = false; try { querybuilder<user, integer> qb = gethelper().getuserdao().querybuilder(); qb.where().eq("username", username).and().eq("password", password); preparedquery<user> pq = qb.prepare(); user user = gethelper().getuserdao().queryforfirst(pq); if(user!=null){ validlogin = true; } } catch (sqlexception e) {e.printstacktrace();} return validlogin; } in helper class, creating table when not available.
tableutils.createtableifnotexists(connectionsource, user.class); how ormlite handle commit operations? have manually commit? please suggest if missing new android , ormlite.
after more information provided in comments, problem seems auto-commit had been disabled either calling dao.setautocommit(false) or starting transaction never finished or rolled back.
using try/finally pattern following recommended.
try { dao.setautocommit(false); ... ... } { dao.setautocommit(true); dao.commit(); }
Comments
Post a Comment