{"repo":"devezhao/persist4j","free":true,"listed":false,"github":"https://github.com/devezhao/persist4j","clone":"git clone https://github.com/devezhao/persist4j.git","description":"A lightweight persistence framework for java","language":"Java","stars":34,"topics":["jdbc","hibernate","ibatis","mybatis","orm","java","sql","spring"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"Use by Jitpack Maven 如何使用 基础操作对象 使用 persist4j 首先需要了解两个基础对象 Record 和 Query 。 Record 是一个 Map 实现，他承担了 DAO 职责，而 Query 是查询入口，是日常编码中使用最为频繁的类。 Record 对象 Record 包含了诸多 setter 和 getter 方法，在实现动态化 DAO 职责的同时，还具备对不同数据（字段）类型进行校验的能力。以下是一个基本的使用示例。 通常你可以将上述代码封装为一个工具方法进行使用 Query 对象 Query 的使用主要是对 persist4j 独有的 AJQL （Auto Join Query Language）语句进行理解。AJQL 是 Like-SQL 语法，因此学习和理解起来并不困难。 通常你可以将上述代码封装为一个工具方法进行使用 请注意上例中 select 子句中的 ReferenceField1.Field2 字段， ReferenceField1 是一个引用型字段，因此可以使用 . 进行（自动）关联查询（其中 Field2 是关联表中的字段）。如果 Field2 也是一个引用字段，那么可以继续进行关联查询。 可以看出，通过 AJQL 可以大大简化我们日常查询 SQL 中的表关联操作，同时这也正是 AJQL 名称的由来。 Query 自动装箱 经由 Query 查询出来的数据并不一定是数据库底层的数据类型，例如 ID 主键虽然使用 varchar 存储，但是查询后会自动转换为 ID 对象（其他字段同理）。这是因为我们会根据元数据的字段定义将其自动装箱，而无需你手动二次处理，同时也保证了数据的严谨性。 元数据 动态元数据是支撑 persist4j 的核心，使用 XML 配置，也可以将其存储在数据库中动态加载。无论何种方式没有本质区别，仅在与来源不同。 以上示例片段来自 rebuild 项目，他定义了一个 ProjectConfig 实体及其所拥有的字段。关于各配置项的说明，请参考 metadata.dtd 。 元数据的配置最终会被映射为 Entity 和 Field 对象，可以对元数据进行操作。 主键 ID ID 对象即主键对象，其生成规则为 ([0-9]{3}-[0-9a-h]{16}) ，其中前 3 位为实体码（不足 3 位前面补 0），其后为 - 分隔符，最后为 16 位随机 Hash 码（不区分大小写）。可以看出，通过 ID 我们可以识别其属于哪个实体。 最佳实践 我们建议你将 persist4j 与 Spring 配合使用，可以大大简化编码。当然，这不是必须的。通过参考 rebuild 项目你可以进行更多的了解。","default_branch":null,"files":null,"tree":[],"storefront":"/r/devezhao","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/devezhao/persist4j/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}