java - SQLiteOpenHelper 方法应该接受对象或 ID 吗?

标签 java android sqlite standards

这可能更多是一个风格/标准/实践问题,但以下哪一个是更好的方法以及原因:

public long insertSomething(MyAccount account, Employee employee, double rating) {
    ContentValues values = new ContentValues();
    values.put(ACCOUNT_ID, account.getId());
    values.put(EMPLOYEE_ID, employee.getId());
    values.put(RATING, rating);
    return mDatabase.insert(MY_TABLE, null, values);
}

这基本上是接受对象,然后在方法内使用它们的 ID 来执行查询。

或者:

public long insertSomething(long accountId, long employeeID, double rating) {
    ContentValues values = new ContentValues();
    values.put(ACCOUNT_ID, accountId);
    values.put(EMPLOYEE_ID, employeeID);
    values.put(RATING, rating);
    return mDatabase.insert(MY_TABLE, null, values);
}

有理由选择其中之一吗?我不确定应该采用哪种方法。

最佳答案

两种实现方式同样有效,因此最终取决于哪种方式对您来说更直接、更友好。

有时,有效性是由纯粹性能以外的因素决定的,例如可读性和一致性。关于一致性,如果你的SQLiteOpenHelper中的所有方法都只使用对象或只使用单个值作为参数,那么维护代码会更容易一些,因为从长远来看你会习惯代码的一般结构。

关于java - SQLiteOpenHelper 方法应该接受对象或 ID 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37127363/

相关文章:

java - 这是清除 StringBuilder 的好方法吗?

java - 使用 nohup 运行 java jar 应用程序后无法执行 shell 脚本中的下一条语句

java - 我正在尝试在 android 中制作可滑动的选项卡布局,但在操作栏中获取空值

c# - ServiceStack JOIN 3 个表

html - cordova-sqlite-ext 可以读取 SD 卡(Android)上的数据库吗?

java - iText7:如何获取段落的实际宽度

java - 使用 JPA 规范过滤优化聚合值选择

android - 应用程序安装被弹出窗口阻止,说应用程序可能会收集数据来跟踪用户

android - 如何在 RealmResults 上执行交换功能

sql - 将子查询转换为自连接