问题场景
联查出来的内容在数据库中没有明确的声明,这个时候直接在 dao 层中声明对应的实体就可以。
如下内容所示,在数据库中并没有 userName 和 studentUserName 的声明,但是我们在页面中需要用到这些内容信息。
代码场景
数据库设计
dao层代码
观察这里的 dao 层的代码会发现, userName 和 studnetUserName 是数据库中不存在的。
xml 配置代码
我们观察就会发现 dao 层中声明的实体类是在 xml 中通过联查临时生成的虚拟表中的内容。通过这种方式的操作可以减轻数据库的繁琐程度,增加代码的灵活性。
使用到的设计模式
对象关系映射(ORM)
对象关系映射(ORM) 是一种用于在编程语言中的对象与数据库中的表之间建立映射关系的技术。ORM 框架(如
MyBatis、Hibernate)允许开发者通过对象而不是通过 SQL
查询来操作数据,这样可以提高开发效率,减少代码量,同时增强代码的可维护性。在 ORM 中,你可以定义一个 Java 对象(如
Paper),并将数据库中的列映射到该对象的属性上。这不仅限于数据库表的直接列,还可以包括通过查询得到的计算列或联接表中的列。
装饰模式(Decorator Pattern)
装饰模式(Decorator Pattern) 允许动态地向对象添加新的功能,而不改变其结构。在 MyBatis 中,通过 SQL 查询和
resultMap 映射,可以动态地为 Java 对象添加新的属性,虽然这些属性在原始数据库表中并不存在