Jdbc 不需要Hibernate帮助的ORM设计

Jdbc 不需要Hibernate帮助的ORM设计,jdbc,orm,Jdbc,Orm,我正在做我的第一个pet项目,我的目标是解析本地工作站点并将相关职位保存到RDB。所以,在创建JDBC版本之前,我不会接触Hibernate。我的数据库模型相当简单:第一个(主)表“Positions”,其ID作为第二个表“Skills”的外键。它们被称为“一对多” 我的主要问题是关于构建适当的代码体系结构设计。由于模式中缺乏有效性,我可能会错过一些概念。 我的想法: 1) 这个变体构建了一个空缺类和一个技能集类,然后我们将这两个对象映射到数据库中 2) 聚合变量:在一个类“空缺”中创建枚举技能

我正在做我的第一个pet项目,我的目标是解析本地工作站点并将相关职位保存到RDB。所以,在创建JDBC版本之前,我不会接触Hibernate。我的数据库模型相当简单:第一个(主)表“Positions”,其ID作为第二个表“Skills”的外键。它们被称为“一对多”

我的主要问题是关于构建适当的代码体系结构设计。由于模式中缺乏有效性,我可能会错过一些概念。
我的想法:
1) 这个变体构建了一个空缺类和一个技能集类,然后我们将这两个对象映射到数据库中
2) 聚合变量:在一个类“空缺”中创建枚举技能集,然后将其映射到两个表中

3) ..?

假设我们拥有实体位置和技能。它们之间的关系应该是多对多的,因为不同的职位可能需要一种技能,而一个职位可能需要几种技能。这意味着,在数据库级别上,您将需要3个表:positions、skills和position_skill(作为前两个表之间的中间表)

在代码级别上,您需要实体类位置和技能由“has-a”关系绑定:类位置内部有一组技能

您将需要存储库(DAO)类,这些类将负责从数据库中检索实体。当使用普通JDBC时,您应该为两个实体实现CRUD(创建、读取、更新、删除)操作的方法。从ResultSet到实体类的映射可以在存储库类中实现,也可以在单独的映射器类中实现(将ResultSet作为参数返回位置或技能实例)。具有挑战性的任务(当不使用框架时)是使用过滤和排序支持实现分页

然后,您需要服务类,当您决定添加服务类时,服务类应该实现业务逻辑

如果要实现web应用程序或REST-/web-services,则需要控制器类,这些类将处理HTTP请求

事件链如下所示:客户端调用控制器,控制器调用服务,服务调用存储库,存储库从数据库检索数据。这种分层结构用于许多应用程序,可以使用单例或spring/JavaEE框架在普通java中实现

祝你好运