# magic **Repository Path**: bigfacecat-zhouning/magic ## Basic Information - **Project Name**: magic - **Description**: 基于spring-context,简化第三方类库引入主要包含:数据库操作、数据验证、数据转化、分布式等功能 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2025-12-06 - **Last Updated**: 2025-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # magic #### 项目介绍 基于spring-context,简化第三方类库的引用主要包含:基础开发框架、数据持久化、数据验证、数据转写等功能 1. start.framework(基础开发框架) 2. start.magic.core.valid(数据验证) 3. start.magic.core.converter(数据转写) 4. start.magic.persistence(持久化框架) 5. start.magic.spring(spring扩展) 6. start.magic.thirparty(codec、json)(第三方扩展) #### 数据验证 1. @NotNull:不能为null 2. @NotEmpty:不能为 "" 字符串 3. @ShortValid short 类型数据范围校验 4. @IntegerValid int 类型数据范围校验 5. @LongValid long 类型数据范围校验 6. @FloatValid float 类型数据范围校验 7. @DoubleValid double 类型数据范围校验 8. @BooleanValid boolean 数据校验 9. @Length:字符的长度校验 10. @Format:格式判断 11. @Equals:传入的数据是否匹配对应的值 12. @NotEquals:传入的数据是否不匹配对应的值 13. @Enum:枚举类型校验 14. @Regex:正则表达式 15. @TimeFormat:时间日期格式校验 例:'yyyyMMddHHmmss' 16. @Custom:自定义验证实现ValidCheckCustom接口 - 如果验证失败则抛ValidException异常,异常信息为设置的message值,验证调用入口:ValidContext.verifyField()方法 #### 数据转写 1. 重新定义的转写器继承自`AbstractConverterEditor`T为转写后输出的类型 2. 方法restore读取外部传入数据转写成最终字段的数据类型,通过setValue保存 3. 方法converter返回字段的数据getValue获取,转写输出想要的T类型数据,这个数据可供下次restore还原读取 4. 字段数据类型一般都配有默认的转写器如需重新定义可在字段上注解@PropertyConverter重写类型转写器 5. 转写器可注解于AO、VO、DTO、DO等POJO对象的字段上 #### 持久化实体类 1. 实体类可继承com.framework.entity.Base、BaseV1Ext、BaseV2Ext类 2. @Entity:注解的类为实体类需同时定义@Table 3. @Table:定义当前实体类对应的表名需同时定义@Entity 4. @MappedSuperclass:实体类基类注解,一般注解于Base类 5. @Id:定义主键字段 6. @Column:定义字段对应的数据表字段名 7. @Transient:处理操作时忽略当前字段 #### JDBC 1. sql.xml映射配置标签说明 - sql标签(包含了需要执行的sql语句)id为读取的sqlId - if标签(用于判断某变量是否满足条件) - for标签(用于判断遍历对应List对象) - include标签(引入其它sql标签中的sql脚本) 2. QueryWrapper、UpdateWrapper、DeleteWrapper可自动生成对应SQL语句,Service、Dao可继承com.framework包下的接口实现 3. 自动生成数据表语句 - @TableDef定义于对应实体类上,可定义对应表相关信息:表类型、字符集、注释、联合索引 - @ColumnDef定义于对应实体类字段上,可定义对应字段相关信息:列名、索引、长度、注释 - @ScriptConverter可自定义当前字段对应的数据表字段类型长度相关信息,对应的类需要实现BaseColumnFieldScriptDef接口 - 调用ScriptDelegate.buildTableScript可打印当前实体类对应的表DDL语句 - 调用ScriptDelegate.tableAnalysis可打印出当前实体类与数据表可修改的参考语句 - 配置文件中定义:start.framework.print.sqltablescript=true,可直接实现上述ScriptDelegate.tableAnalysis功能 #### maven ``` mvn clean install -Dmaven.test.skip=true ```