由于DAO层通常负责在给定某些输入(如user_id等)的情况下从DB访问数据,它是否应该检查其输入的有效性?
例如,如果有一个DAO方法基于user_uid获取用户,这是一个(> 0)主键,那么DAO方法是否应该在进行必要的DB调用之前检查此约束?或者它应该假设任何更高的层调用此方法将处理约束并且永远不传递-ve id?DAO方法可以在其doc中发布此约束,以便编写更高层的程序员能够意识到它.
您通常使用哪种方法?为什么?
感谢致敬!
Python (Flask) SQL Alchemy 是否同时使用 DAO 和 ORM 设计,还是仅使用 ORM?我正在学习设计策略,我想到了 SQLAlchemy。它也被视为 DAO(显然是 ORM)吗?
默认情况下,它看起来不像 DAO。
如果我为现有模型类定义一个类,例如假设我有以下类:
class User(db.model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(120), unique=True, nullable=False)
verified= db.Column(db.String(5), unique=False, nullable=False)
Run Code Online (Sandbox Code Playgroud)
我定义了另一个类,UserDao
class UserDao:
def addNewUser(user):
pass
def retrieveAllUsers(user):
users = User.query.limit(5).all()
Run Code Online (Sandbox Code Playgroud)
我实例化了这个 UserDao 类的对象并调用相应的方法通过相应的方法执行一些数据库操作,这是否使其成为“DAO 模式”?
我是 Android 开发新手,我正在尝试通过遵循 Android 架构组件来制作一个笔记应用程序,但在运行时,我在 DAO 中遇到错误,如果有人可以提供帮助,我将不胜感激。这是我收到的代码和错误。
道:-
'''
@Dao
interface NoteDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(note :Note)
@Delete
suspend fun delete(note : Note)
@Query("SELECT * FROM Notes_table order by id")
fun getALL(): LiveData<List<Note>>
@Query("SELECT * From Notes_table where id= :pos")
fun getSpecific(pos :Int):Note
}
Run Code Online (Sandbox Code Playgroud)
'''
实体:-
'''
@Entity(tableName = "Notes_table")
data class Note(@ColumnInfo(name="noteText") val text:String) {
@PrimaryKey(autoGenerate = true) var id:Int =0
}
Run Code Online (Sandbox Code Playgroud)
''' 数据库:-
'''
@Database(entities = [Note::class],version = 1,exportSchema = false)
abstract class NoteDatabase : …
Run Code Online (Sandbox Code Playgroud) android kotlin data-access-object android-room android-architecture-components
dao ×3
android ×1
android-architecture-components ×1
android-room ×1
kotlin ×1
layer ×1
python ×1
sqlalchemy ×1
validation ×1