以下のコードを使用して挿入を行うために ORMLite を使用しています。
protected void registerUser(EditText fullName, EditText email, EditText mobile, EditText username, EditText password) {
//Perform DB Call to 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);
}
しかし、アプリケーションを再起動すると、上記のレコードが失われ、ログインに失敗します。次のコードを使用して認証を行い、既存のレコードに対して機能します。
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;
}
私のヘルパー クラスでは、使用できない場合にのみテーブルを作成しています。
TableUtils.createTableIfNotExists(connectionSource, User.class);
ORMLite はコミット操作をどのように処理しますか? 手動でコミットする必要がありますか? AndroidとORMLiteが初めてなので、何か不足している場合は提案してください。