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中。
- 1.简介
- 开发历程
- 技术架构
- 问答了解
- 版本历史
- update-5.1.4、4.18.43
- update-5.1.2
- 早期历史
- 5.1.15.rc1
- 2.快速使用
- 示例与环境
- quickvo工具使用
- 用法说明
- 关键注意事项
- 严格VO(DTO)和POJO(entity)分层
- 3.教程
- spring项目搭建
- Toy-ORM 配置
- 详细配置参数
- 缓存功能
- 缓存配置、缓存扩展
- 扩展缓存框架配置
- 缓存翻译
- 其他缓存应用场景
- 公共功能
- 表(对象)关联
- 公共字段赋值
- 链式操作
- DTO与POJO互转
- 对象操作
- save + update
- delete + trunk
- load加载数据
- 唯一验证
- 树形数据
- sharding分库分表
- SQL操作
- sql文件规则
- filters说明
- 缓存翻译
- 分库分表
- 汇总、环比
- 行列转换
- 数据脱敏
- 格式化-数字日期
- sqlToy的sql查询基本规则
- Sql查询功能
- load操作
- get操作
- find操作
- 分页查询
- 并行查询
- execute操作
- executeSql
- executeStore
- 数据库特性
- 主键策略
- JSON等类型扩展支持
- 跨库说明--异种库兼容
- 数据库保留字处理
- 多源-多库-异库
- 多数据源
- Mongodb支持
- ElasticSearch支持
- 高级扩展
- 补充-if+fast+blank+value+loop
- 高级功能
- 完美sql
- 快速分页
- 缓存翻译
- 防止sql注入
- 字段加解密
- 扩展集成