我收到了一个任务,该任务使用数据层的数据映射器模式实现一个小型系统。
我不想为每个实体编写每个映射器的重复性任务,而且我被限制为不使用任何库或框架来进行映射,因此我实现了一个通用映射器,该映射器使用反射来生成带有以下内容的SQL脚本:以下接口(类似伪代码):
Mapper {
create (Class) {
create table in database using Class as reference;
}
create (object) {
insert object into database;
}
read (Class, filters...) {
return a list of objects that match the class specification in the database using the provided filters;
}
update(object) {
update row of the database that has object's primary key with the values in object;
}
delete(Class) {
drop table in the database that has the Class specification;
}
delete(object) {
remove row that has the object's primary key;
}
}
然后,我将使用Java注释在要使用的类中指定主键和外键以及String大小约束。
在将完成的作业交给老师之后,他告诉我我实施了一个活动记录而不是数据映射器,现在我对这是否正确感到困惑。
那真的不是映射器吗?他没有给我一个理由,只是说我本质上实现了Hibernate,而且它不是一个映射器。