企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
5.2.1 用法说明 参见sqltoy-quickstart项目tools下面的quickvo配置 quickvo顾名思义是快速产生pojo和dto(vo)的一个工具,其通过连接数据库,根据数据库的表匹配产生pojo/dto,其目录结构: ![](https://img.kancloud.cn/66/02/66024816baf9ac372382aebb4c8efdbd_485x603.png) - 编写quickvo.bat 核心语句:java -cp ./libs/\* org.sagacity.quickvo.QuickVOStart quickvo.xml ![](https://img.kancloud.cn/c9/07/c90788d0d2e748737b0d3f23c3208fc0_903x100.png) - Linux或Mac上quickvo.sh编写,注意反斜杠 ![](https://img.kancloud.cn/b6/01/b601ea78993f3f0fd04c3176e05853ad_767x97.png) quickvo通过quickvo.bat来执行sagacity-quickvo.jar(可执行jar文件),根据项目实际将数据库驱动类放于libs目录下,quickvo实现自动加载驱动同时读取quickvo.xml配置文件连接数据库利用freemarker模板产生vo类。 quickvo.xml配置如下: 如上述图: - property属性:配置全局参数或参数文件 - datasource:配置需要连接的数据库信息(可以不用${}模式直接写具体的值) - 关键属性:field.support.linked.set开关,用于打开生成的VO中set方法是否包含返回自身。 - tasks:包含entity和vo两种子任务(可以只配置其中一种),entity产生pojo,vo生成dto或vo ![](https://img.kancloud.cn/51/59/5159be3c11958ff8b7aa9385b2785f96_1350x910.png) - primary-key:配置表的主键生成策略,可以给特定的表指定诸如UUID或sequence产生策略,不配置则默认为22位唯一数字。 - cascade:数据库表级联操作配置(主子表操作),配置load级联(如定义级联加载状态为有效的子表数据)以及update级联(delete无需配置,主外键关联直接删除子表)、orderBy属性定义加载子表时的排序规则,比如:showIndex desc。 ![](https://img.kancloud.cn/d2/77/d277bc70b207fe8b68265b9c6844b798_1201x144.png) - type-mapping:数据库表字段类型跟jdbc-type类型以及java类型的对照映射关系。 注意:import-types 可以额外进入VO的import类型 ![](https://img.kancloud.cn/7e/44/7e443f7b556c36658b7bb0287b2451ac_1792x504.png) (注:如果类型匹配不上quickvo执行过程中会通过日志打印出来,请根据日志提示配置type-mapping) 通过quickvo一张表会产生AbstractVO和VO两个类,VO继承AbstractVO。如下图: sqltoy通过annotation注解模式来解析VO。 @Entity(tableName="sag\_dict\_detail",pk\_constraint="PRIMARY"),tableName则对应上具体的表(参见:org.sagacity.sqltoy.config.annotation.Entity) VO中的@SqlToyEntity则是标注VO检索时进行精确定位,找到@SqlToyEntity则再找该类的父类,从而找到实际跟数据库表对应的类,并检索@Id,@Column属性形成对象和表完全对应的关系,从而便于对象操作时转化为实际的sql语句。 ![](https://img.kancloud.cn/07/a4/07a49e95f9b3d57c5f54c59ddc2fd093_930x877.png) 标注:请不要修改VO以下文字之间的内容。如果要扩展VO请在此区间外任意增加属性和get、set方法。 ![](https://img.kancloud.cn/d2/87/d28766d25cb80abcb0e3301fab09570d_739x33.png) ![](https://img.kancloud.cn/48/08/480807e571a68dd6c229fad9ef041c92_773x39.png) ![](https://img.kancloud.cn/19/43/1943f17de786ea347750bf9fa76165d3_842x882.png) quickvo生成的VO会根据数据库表注释将表、字段的注释体现在VO中。