{"id":17994618,"url":"https://github.com/pansonpanson/jorm","last_synced_at":"2025-03-26T02:31:04.247Z","repository":{"id":184590932,"uuid":"672161653","full_name":"PansonPanson/jorm","owner":"PansonPanson","description":"An ORM framework written in Java.","archived":false,"fork":false,"pushed_at":"2023-08-28T14:23:52.000Z","size":165,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T01:41:33.592Z","etag":null,"topics":["gorm","mybatis","orm","souce-code","sql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PansonPanson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-29T05:57:42.000Z","updated_at":"2023-08-14T15:25:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"5faee523-b9b4-45b6-b6f9-ed9e54fd8d73","html_url":"https://github.com/PansonPanson/jorm","commit_stats":null,"previous_names":["pansonpanson/jorm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PansonPanson%2Fjorm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PansonPanson%2Fjorm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PansonPanson%2Fjorm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PansonPanson%2Fjorm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PansonPanson","download_url":"https://codeload.github.com/PansonPanson/jorm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245576528,"owners_count":20638125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gorm","mybatis","orm","souce-code","sql"],"created_at":"2024-10-29T20:15:52.918Z","updated_at":"2025-03-26T02:31:03.609Z","avatar_url":"https://github.com/PansonPanson.png","language":"Java","readme":"\n# jorm\nAn ORM framework written in Java.\n\n[English Doc]()  |  [中文文档]()\n___________________________\n\n# architecture design\n\n![simple-architecture-diagram](https://github.com/PansonPanson/jorm/blob/main/doc/zh/001picture/simple-architecture-diagram.png?raw=true)\n\n# MyBatis sourcecode reading\nMybatis 的源码行数不算多，用 IDEA 插件 statistics 统计 main 包下 Java 代码的行数为两万多行。本文主要侧重讲解 Mybatis 的工程结构。\n以下为 main 包下的目录结构：\n```\n├── java\n│   └── org\n│       └── apache\n│           └── ibatis\n│               ├── annotations\n│               ├── binding\n│               ├── builder\n│               ├── cache\n│               ├── cursor\n│               ├── datasource\n│               ├── exceptions\n│               ├── executor\n│               ├── io\n│               ├── jdbc\n│               ├── lang\n│               ├── logging\n│               ├── mapping\n│               ├── parsing\n│               ├── plugin\n│               ├── reflection\n│               ├── scripting\n│               ├── session\n│               ├── transaction\n│               ├── type\n│               └── util\n│               ├── package-info.java\n└── resources\n    └── org\n        └── apache\n            └── ibatis\n                └── builder\n```\n\n为了页面更直观，我将直接在目录结构上增加说明，如下：\n```\n├── java\n│   └── org\n│       └── apache\n│           └── ibatis\n│               ├── annotations：支持以注解形式配置 sql，而非以 xml 形式配置 sql \n│               ├── binding：将 Mapper 接口与映射配置文件关联起来\n│               ├── builder：支持配置解析\n│               ├── cache：支持一级缓存和二级缓存\n│               ├── cursor：sql 执行结果的游标\n│               ├── datasource：数据源相关\n│               ├── exceptions：异常处理\n│               ├── executor：支持 sql 执行\n│               ├── io：资源加载模块，主要是对类加载器进行封装，确定类加载器的使用顺序，并提供了加载类文件以及其他资源文件的功能 \n│               ├── jdbc：JDBC 相关\n│               ├── lang：语言相关\n│               ├── logging：日志模块，集成第三方日志框架\n│               ├── mapping：支持 sql 操作解析后的映射\n│               ├── parsing：支持配置文件解析\n│               ├── plugin：支持插件开发\n│               ├── reflection：封装 JDK 的反射，提供更友好的反射 API\n│               ├── scripting：解析并拼接sql\n│               ├── session：提供 SqlSession 接口\n│               ├── transaction：事务模块\n│               ├── type：支持别名机制、JDBC 类型与 Java 类型之间的相互转换\n│               └── util：功能包\n└── resources\n    └── org\n        └── apache\n            └── ibatis\n                └── builder\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpansonpanson%2Fjorm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpansonpanson%2Fjorm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpansonpanson%2Fjorm/lists"}