# SmartOrm **Repository Path**: blacksoil/smartorm ## Basic Information - **Project Name**: SmartOrm - **Description**: 自己写的一个orm实现,参考mybatis - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **SmartORM框架设计** ## 需求 - 提供客户端API - 将连接数据库的通用操作进行隐藏,客户端直接调用API即可完成数据库操作CRUD。 如:getConnection, close connection; - 将用户操作的sql从代码中解耦,单独维护; - 包装查询结果为对象,框架直接返回用户定义的MODEL; ## 架构设计 1. 配置模块:com.wushi.smartorm.MapperConfig, 读取并解析相关配置文件,包括框架配置文件、用户SQL配置文件 2. 参数管理模块:读取并管理传入的参数, 方便注入sql中的spaceholder 3. Mapper代理模块:com.wushi.smartorm.OrmMapperProxyFactory,com.wushi.smartorm.OrmMapperHandler,生成传入的Mapper接口的代理,并通过Executor执行数据库CRUD操作 OrmMapperHandler是框架的核心,它负责具体接受解析的参数、调用Executor、解析查询结果 4. 执行器:com.wushi.smartorm.OrmExecutorFactory,com.wushi.smartorm.OrmExecutor ## **编码思路** 编码时可以倒着写,即从客户端调用开始,将框架提供给客户端的API作为入口,依次展开,像剥洋葱一样,一层一层,调用框架的各个模块最后实现框架的核心;