在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例企业应用开发/EJB → persist4j,类AJQL语法糖的ORM工具集

persist4j,类AJQL语法糖的ORM工具集

企业应用开发/EJB

下载此实例
  • 开发语言:Java
  • 实例大小:4.36M
  • 下载次数:6
  • 浏览次数:50
  • 发布时间:2022-09-01
  • 实例类别:企业应用开发/EJB
  • 发 布 人:gmsmd6688
  • 文件格式:.zip
  • 所需积分:2
 相关标签: ORM sis 工具 语法 pe

实例介绍

【实例简介】persist4j,类AJQL语法糖的ORM工具集

建议你将 persist4j 与 Spring 配合使用,可以大大简化编码。


使用 persist4j 首先需要了解两个基础对象 Record 和 QueryRecord 是一个 Map 实现,他承担了 DAO 职责,而 Query 是查询入口,是日常编码中使用最为频繁的类。


Record 对象

Record 包含了诸多 setter 和 getter 方法,在实现动态化 DAO 职责的同时,还具备对不同数据(字段)类型进行校验的能力。以下是一个基本的使用示例。

// 获取数据管理对象
PersistManagerFactory PMF = ...
PersistManager PM = PMF.createPersistManager();

Record record = new StandardRecord()
record.setString("FieldName", "FieldValue");

PM.create(record);

通常你可以将上述代码封装为一个工具方法进行使用

Query 对象

Query 的使用主要是对 persist4j 独有的 AJQL (Auto Join Query Language)语句进行理解。AJQL 是 Like-SQL 语法,因此学习和理解起来并不困难。

// 获取数据管理对象
PersistManagerFactory PMF = ...
PersistManager PM = PMF.createPersistManager();

String ajql = "select Field1, ReferenceField1.Field2 from Table1 where Field2 = ?";
Record found = PM.createQuery(ajql).setParameter(1, "SomeValue").unique();

通常你可以将上述代码封装为一个工具方法进行使用

请注意上例中 select 子句中的 ReferenceField1.Field2 字段,ReferenceField1 是一个引用型字段,因此可以使用 . 进行(自动)关联查询(其中 Field2 是关联表中的字段)。如果 Field2 也是一个引用字段,那么可以继续进行关联查询。

可以看出,通过 AJQL 可以大大简化我们日常查询 SQL 中的表关联操作,同时这也正是 AJQL 名称的由来。

Query 自动装箱

经由 Query 查询出来的数据并不一定是数据库底层的数据类型,例如 ID 主键虽然使用 varchar 存储,但是查询后会自动转换为 ID 对象(其他字段同理)。这是因为我们会根据元数据的字段定义将其自动装箱,而无需你手动二次处理,同时也保证了数据的严谨性。

【实例截图】

from clipboard

from clipboard

【核心代码】

.
├── persist4j-master
│   ├── LICENSE
│   ├── README.md
│   ├── docs
│   │   ├── allclasses-frame.html
│   │   ├── allclasses-noframe.html
│   │   ├── cn
│   │   │   └── devezhao
│   │   │       └── persist4j
│   │   │           ├── BaseTest.html
│   │   │           ├── DataAccessException.html
│   │   │           ├── Entity.html
│   │   │           ├── Field.html
│   │   │           ├── Filter.html
│   │   │           ├── PersistException.html
│   │   │           ├── PersistManager.html
│   │   │           ├── PersistManagerFactory.html
│   │   │           ├── Query.html
│   │   │           ├── Record.html
│   │   │           ├── RecordTest.html
│   │   │           ├── dialect
│   │   │           │   ├── Dialect.html
│   │   │           │   ├── DialectException.html
│   │   │           │   ├── Editor.html
│   │   │           │   ├── FieldType.html
│   │   │           │   ├── MySQL5Dialect.html
│   │   │           │   ├── OracleDialect.html
│   │   │           │   ├── Type.html
│   │   │           │   ├── editor
│   │   │           │   │   ├── AbstractFieldEditor.html
│   │   │           │   │   ├── AnyReferenceEditor.html
│   │   │           │   │   ├── BinaryEditor.html
│   │   │           │   │   ├── BoolEditor.html
│   │   │           │   │   ├── CharEditor.html
│   │   │           │   │   ├── DateEditor.html
│   │   │           │   │   ├── DecimalEditor.html
│   │   │           │   │   ├── DoubleEditor.html
│   │   │           │   │   ├── IntEditor.html
│   │   │           │   │   ├── LongEditor.html
│   │   │           │   │   ├── NTextEditor.html
│   │   │           │   │   ├── PrimaryEditor.html
│   │   │           │   │   ├── ReferenceEditor.html
│   │   │           │   │   ├── ReferenceListEditor.html
│   │   │           │   │   ├── SmallIntEditor.html
│   │   │           │   │   ├── StringEditor.html
│   │   │           │   │   ├── TextEditor.html
│   │   │           │   │   ├── TimestampEditor.html
│   │   │           │   │   ├── package-frame.html
│   │   │           │   │   ├── package-summary.html
│   │   │           │   │   └── package-tree.html
│   │   │           │   ├── function
│   │   │           │   │   ├── GetDateFunction.html
│   │   │           │   │   ├── SqlFunction.html
│   │   │           │   │   ├── package-frame.html
│   │   │           │   │   ├── package-summary.html
│   │   │           │   │   └── package-tree.html
│   │   │           │   ├── h2
│   │   │           │   │   ├── H2Dialect.html
│   │   │           │   │   ├── package-frame.html
│   │   │           │   │   ├── package-summary.html
│   │   │           │   │   └── package-tree.html
│   │   │           │   ├── package-frame.html
│   │   │           │   ├── package-summary.html
│   │   │           │   └── package-tree.html
│   │   │           ├── engine
│   │   │           │   ├── ID.html
│   │   │           │   ├── IDGenerator.html
│   │   │           │   ├── JdbcSupport.html
│   │   │           │   ├── NullValue.html
│   │   │           │   ├── PersistManagerFactoryImpl.html
│   │   │           │   ├── PersistManagerImpl.html
│   │   │           │   ├── PersistManagerTest.html
│   │   │           │   ├── SqlExecutorContext.html
│   │   │           │   ├── StandardRecord.html
│   │   │           │   ├── StatementCallback.html
│   │   │           │   ├── WeakIDGenerator.html
│   │   │           │   ├── package-frame.html
│   │   │           │   ├── package-summary.html
│   │   │           │   └── package-tree.html
│   │   │           ├── exception
│   │   │           │   ├── JdbcException.html
│   │   │           │   ├── SqlExceptionConverter.html
│   │   │           │   ├── SqlWarningException.html
│   │   │           │   ├── jdbc
│   │   │           │   │   ├── ConstraintViolationException.html
│   │   │           │   │   ├── GenericJdbcException.html
│   │   │           │   │   ├── LockAcquisitionException.html
│   │   │           │   │   ├── SqlSyntaxException.html
│   │   │           │   │   ├── package-frame.html
│   │   │           │   │   ├── package-summary.html
│   │   │           │   │   └── package-tree.html
│   │   │           │   ├── package-frame.html
│   │   │           │   ├── package-summary.html
│   │   │           │   └── package-tree.html
│   │   │           ├── metadata
│   │   │           │   ├── BaseMeta.html
│   │   │           │   ├── BaseMetaObject.html
│   │   │           │   ├── CascadeModel.html
│   │   │           │   ├── MetadataException.html
│   │   │           │   ├── MetadataFactory.html
│   │   │           │   ├── MetadataTest.html
│   │   │           │   ├── MissingMetaExcetion.html
│   │   │           │   ├── impl
│   │   │           │   │   ├── AnyEntity.html
│   │   │           │   │   ├── ConfigurationMetadataFactory.html
│   │   │           │   │   ├── EntityImpl.html
│   │   │           │   │   ├── FieldImpl.html
│   │   │           │   │   ├── package-frame.html
│   │   │           │   │   ├── package-summary.html
│   │   │           │   │   └── package-tree.html
│   │   │           │   ├── package-frame.html
│   │   │           │   ├── package-summary.html
│   │   │           │   └── package-tree.html
│   │   │           ├── package-frame.html
│   │   │           ├── package-summary.html
│   │   │           ├── package-tree.html
│   │   │           ├── query
│   │   │           │   ├── AjqlQuery.html
│   │   │           │   ├── AjqlResultImpl.html
│   │   │           │   ├── BaseQuery.html
│   │   │           │   ├── IQuery.html
│   │   │           │   ├── NativeQuery.html
│   │   │           │   ├── NativeQueryImpl.html
│   │   │           │   ├── QueryException.html
│   │   │           │   ├── QueryTest.html
│   │   │           │   ├── QueryedRecord.html
│   │   │           │   ├── Result.html
│   │   │           │   ├── SlowLogger.html
│   │   │           │   ├── compiler
│   │   │           │   │   ├── CompileException.html
│   │   │           │   │   ├── Compiler.html
│   │   │           │   │   ├── JoinField.html
│   │   │           │   │   ├── JoinTree.JoinNode.html
│   │   │           │   │   ├── JoinTree.html
│   │   │           │   │   ├── NestedSelectContext.html
│   │   │           │   │   ├── ParameterItem.html
│   │   │           │   │   ├── QueryCompiler.html
│   │   │           │   │   ├── QueryCompilerTest.html
│   │   │           │   │   ├── SelectItem.html
│   │   │           │   │   ├── SelectItemType.html
│   │   │           │   │   ├── antlr
│   │   │           │   │   │   ├── AjQLLexer.html
│   │   │           │   │   │   ├── AjQLParser.html
│   │   │           │   │   │   ├── AjQLParserTokenTypes.html
│   │   │           │   │   │   ├── ParserException.html
│   │   │           │   │   │   ├── ParserHelper.html
│   │   │           │   │   │   ├── ThrowerAjQLParser.html
│   │   │           │   │   │   ├── package-frame.html
│   │   │           │   │   │   ├── package-summary.html
│   │   │           │   │   │   └── package-tree.html
│   │   │           │   │   ├── package-frame.html
│   │   │           │   │   ├── package-summary.html
│   │   │           │   │   └── package-tree.html
│   │   │           │   ├── package-frame.html
│   │   │           │   ├── package-summary.html
│   │   │           │   └── package-tree.html
│   │   │           ├── record
│   │   │           │   ├── FieldValueException.html
│   │   │           │   ├── JsonRecordCreator.html
│   │   │           │   ├── RecordCreator.html
│   │   │           │   ├── RecordVisitor.html
│   │   │           │   ├── XmlBean.html
│   │   │           │   ├── XmlRecordCreator.html
│   │   │           │   ├── package-frame.html
│   │   │           │   ├── package-summary.html
│   │   │           │   └── package-tree.html
│   │   │           └── util
│   │   │               ├── CaseInsensitiveMap.html
│   │   │               ├── CaseInsensitiveMapTest.html
│   │   │               ├── SqlHelper.html
│   │   │               ├── StringHelper.html
│   │   │               ├── XmlHelper.DTDEntityResolver.html
│   │   │               ├── XmlHelper.ErrorLogger.html
│   │   │               ├── XmlHelper.html
│   │   │               ├── package-frame.html
│   │   │               ├── package-summary.html
│   │   │               ├── package-tree.html
│   │   │               └── support
│   │   │                   ├── QueryHelper.html
│   │   │                   ├── SchemaExport.html
│   │   │                   ├── SchemaExportTest.html
│   │   │                   ├── SecurityPreferencesConfigurer.html
│   │   │                   ├── Table.html
│   │   │                   ├── package-frame.html
│   │   │                   ├── package-summary.html
│   │   │                   └── package-tree.html
│   │   ├── constant-values.html
│   │   ├── deprecated-list.html
│   │   ├── help-doc.html
│   │   ├── index-files
│   │   │   ├── index-1.html
│   │   │   ├── index-10.html
│   │   │   ├── index-11.html
│   │   │   ├── index-12.html
│   │   │   ├── index-13.html
│   │   │   ├── index-14.html
│   │   │   ├── index-15.html
│   │   │   ├── index-16.html
│   │   │   ├── index-17.html
│   │   │   ├── index-18.html
│   │   │   ├── index-19.html
│   │   │   ├── index-2.html
│   │   │   ├── index-20.html
│   │   │   ├── index-21.html
│   │   │   ├── index-22.html
│   │   │   ├── index-23.html
│   │   │   ├── index-24.html
│   │   │   ├── index-25.html
│   │   │   ├── index-26.html
│   │   │   ├── index-3.html
│   │   │   ├── index-4.html
│   │   │   ├── index-5.html
│   │   │   ├── index-6.html
│   │   │   ├── index-7.html
│   │   │   ├── index-8.html
│   │   │   └── index-9.html
│   │   ├── index.html
│   │   ├── overview-frame.html
│   │   ├── overview-summary.html
│   │   ├── overview-tree.html
│   │   ├── package-list
│   │   ├── script.js
│   │   ├── serialized-form.html
│   │   └── stylesheet.css
│   ├── lib
│   │   └── ojdbc8.jar
│   ├── pom.xml
│   └── src
│       ├── main
│       │   ├── java
│       │   │   └── cn
│       │   │       └── devezhao
│       │   │           └── persist4j
│       │   │               ├── DataAccessException.java
│       │   │               ├── Entity.java
│       │   │               ├── Field.java
│       │   │               ├── Filter.java
│       │   │               ├── PersistException.java
│       │   │               ├── PersistManager.java
│       │   │               ├── PersistManagerFactory.java
│       │   │               ├── Query.java
│       │   │               ├── Record.java
│       │   │               ├── dialect
│       │   │               │   ├── Dialect.java
│       │   │               │   ├── DialectException.java
│       │   │               │   ├── Editor.java
│       │   │               │   ├── FieldType.java
│       │   │               │   ├── MySQL5Dialect.java
│       │   │               │   ├── OracleDialect.java
│       │   │               │   ├── Type.java
│       │   │               │   ├── editor
│       │   │               │   │   ├── AbstractFieldEditor.java
│       │   │               │   │   ├── AnyReferenceEditor.java
│       │   │               │   │   ├── BinaryEditor.java
│       │   │               │   │   ├── BoolEditor.java
│       │   │               │   │   ├── CharEditor.java
│       │   │               │   │   ├── DateEditor.java
│       │   │               │   │   ├── DecimalEditor.java
│       │   │               │   │   ├── DoubleEditor.java
│       │   │               │   │   ├── IntEditor.java
│       │   │               │   │   ├── LongEditor.java
│       │   │               │   │   ├── NTextEditor.java
│       │   │               │   │   ├── PrimaryEditor.java
│       │   │               │   │   ├── ReferenceEditor.java
│       │   │               │   │   ├── ReferenceListEditor.java
│       │   │               │   │   ├── SmallIntEditor.java
│       │   │               │   │   ├── StringEditor.java
│       │   │               │   │   ├── TextEditor.java
│       │   │               │   │   ├── TimeEditor.java
│       │   │               │   │   └── TimestampEditor.java
│       │   │               │   ├── function
│       │   │               │   │   ├── GetDateFunction.java
│       │   │               │   │   └── SqlFunction.java
│       │   │               │   └── h2
│       │   │               │       └── H2Dialect.java
│       │   │               ├── engine
│       │   │               │   ├── ID.java
│       │   │               │   ├── IDGenerator.java
│       │   │               │   ├── JdbcSupport.java
│       │   │               │   ├── NullValue.java
│       │   │               │   ├── PersistManagerFactoryImpl.java
│       │   │               │   ├── PersistManagerImpl.java
│       │   │               │   ├── SqlExecutorContext.java
│       │   │               │   ├── StandardRecord.java
│       │   │               │   ├── StatementCallback.java
│       │   │               │   └── WeakIDGenerator.java
│       │   │               ├── exception
│       │   │               │   ├── JdbcException.java
│       │   │               │   ├── SqlExceptionConverter.java
│       │   │               │   ├── SqlWarningException.java
│       │   │               │   └── jdbc
│       │   │               │       ├── ConstraintViolationException.java
│       │   │               │       ├── GenericJdbcException.java
│       │   │               │       ├── LockAcquisitionException.java
│       │   │               │       └── SqlSyntaxException.java
│       │   │               ├── metadata
│       │   │               │   ├── BaseMeta.java
│       │   │               │   ├── BaseMetaObject.java
│       │   │               │   ├── CascadeModel.java
│       │   │               │   ├── MetadataException.java
│       │   │               │   ├── MetadataFactory.java
│       │   │               │   ├── MissingMetaExcetion.java
│       │   │               │   └── impl
│       │   │               │       ├── AnyEntity.java
│       │   │               │       ├── ConfigurationMetadataFactory.java
│       │   │               │       ├── EntityImpl.java
│       │   │               │       └── FieldImpl.java
│       │   │               ├── query
│       │   │               │   ├── AjqlQuery.java
│       │   │               │   ├── AjqlResultImpl.java
│       │   │               │   ├── BaseQuery.java
│       │   │               │   ├── IQuery.java
│       │   │               │   ├── NativeQuery.java
│       │   │               │   ├── NativeQueryImpl.java
│       │   │               │   ├── QueryException.java
│       │   │               │   ├── QueryedRecord.java
│       │   │               │   ├── Result.java
│       │   │               │   ├── SlowLogger.java
│       │   │               │   └── compiler
│       │   │               │       ├── CompileException.java
│       │   │               │       ├── JoinField.java
│       │   │               │       ├── JoinTree.java
│       │   │               │       ├── NestedSelectContext.java
│       │   │               │       ├── ParameterItem.java
│       │   │               │       ├── QueryCompiler.java
│       │   │               │       ├── SelectItem.java
│       │   │               │       ├── SelectItemType.java
│       │   │               │       ├── antlr
│       │   │               │       │   ├── AjQLLexer.java
│       │   │               │       │   ├── AjQLParser.java
│       │   │               │       │   ├── AjQLParserTokenTypes.java
│       │   │               │       │   ├── ParserException.java
│       │   │               │       │   ├── ParserHelper.java
│       │   │               │       │   ├── ThrowerAjQLParser.java
│       │   │               │       │   └── ajql.g
│       │   │               │       └── antlr4
│       │   │               │           └── ajql.g4
│       │   │               ├── record
│       │   │               │   ├── FieldValueException.java
│       │   │               │   ├── JsonRecordCreator.java
│       │   │               │   ├── RecordCreator.java
│       │   │               │   ├── RecordVisitor.java
│       │   │               │   ├── XmlBean.java
│       │   │               │   └── XmlRecordCreator.java
│       │   │               └── util
│       │   │                   ├── CaseInsensitiveMap.java
│       │   │                   ├── SqlHelper.java
│       │   │                   ├── StringHelper.java
│       │   │                   ├── XmlHelper.java
│       │   │                   └── support
│       │   │                       ├── QueryHelper.java
│       │   │                       ├── SchemaExport.java
│       │   │                       ├── SecurityPreferencesConfigurer.java
│       │   │                       └── Table.java
│       │   └── resources
│       │       └── metadata.dtd
│       └── test
│           ├── java
│           │   └── cn
│           │       └── devezhao
│           │           └── persist4j
│           │               ├── BaseTest.java
│           │               ├── RecordTest.java
│           │               ├── engine
│           │               │   └── PersistManagerTest.java
│           │               ├── metadata
│           │               │   └── MetadataTest.java
│           │               ├── query
│           │               │   ├── QueryTest.java
│           │               │   └── compiler
│           │               │       ├── Compiler.java
│           │               │       └── QueryCompilerTest.java
│           │               └── util
│           │                   ├── CaseInsensitiveMapTest.java
│           │                   └── support
│           │                       └── SchemaExportTest.java
│           └── resources
│               └── metadata-test.xml
└── persist4j,类AJQL语法糖的ORM工具集_persist4j-master.zip

57 directories, 322 files



标签: ORM sis 工具 语法 pe

实例下载地址

persist4j,类AJQL语法糖的ORM工具集

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警