标签: data-access-object

DAO和DAL有什么区别?

在学校学习Java后,我对DAO模式(数据访问对象)非常熟悉.但是在工作中我使用.NET.在.NET中,经常有关于DAL(数据访问层)的讨论.对我来说,他们的目的似乎很相似.所以问题是DAO和DAL基本相同吗?DAL这个术语是否只是组成,所以它不会与数据访问对象混淆?

dao data-access-layer data-access-object

46
推荐指数
2
解决办法
3万
查看次数

DAO应该验证输入

由于DAO层通常负责在给定某些输入(如user_id等)的情况下从DB访问数据,它是否应该检查其输入的有效性?

例如,如果有一个DAO方法基于user_uid获取用户,这是一个(> 0)主键,那么DAO方法是否应该在进行必要的DB调用之前检查此约束?或者它应该假设任何更高的层调用此方法将处理约束并且永远不传递-ve id?DAO方法可以在其doc中发布此约束,以便编写更高层的程序员能够意识到它.

您通常使用哪种方法?为什么?

感谢致敬!

validation dao layer data-access-object

8
推荐指数
2
解决办法
2484
查看次数

Python Flask SQLAlchemy 中的数据访问对象 (DAO)

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 模式”?

python dao sqlalchemy flask-sqlalchemy data-access-object

7
推荐指数
2
解决办法
8868
查看次数

DAO错误:-参数的类型必须是用@Entity注释的类或其集合/数组

我是 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

6
推荐指数
1
解决办法
4672
查看次数