mirren的工具箱

VertX-generator QQ交流群:99135252

VertX-generator v1.0.1
vertx-generator是一款基于javafx8开发的一款图形界面的vert.x逆向工程
该工具支持Oracle , SqlServer , MySQL , PostgreSql数据库的逆向生成
生成采用模板生成的方式,用户自定义模板,工具根据模板进行生成
前往下载

关于 VertX-generator

简单来说VertX-generator是一款使用Javafx开发的逆向工程帮助工具,该工具支持Oracle,Mysql,SqlServer,PostgreSql等数据库的生成,
VertX-generator面向于vert.x这个tool-kit http://vertx.io 但VertX-generator并不仅仅可以生产vert.x所需代码
因为VertX-generator只依赖一样东西就是模板 , 因为他的使命就是将表中的数据读取出来后填充到模板中
关于VertX-generator运行要求,运行时文件存放路径不能存在中文;CMEU窗体基于javafx8,语法使用大部分java8特性,开发使用环境使用1.8.66,已知使用特性中最低要求为1.8.40,所以运行环境要求JDK1.8.66及以上
官方QQ交流群号: 99135252

基本常用功能预览:

  1. 生成实体类(可以自定义: get/set,有参无参构造方法,自定义类型与属性,序列化,json encode/decode等)[可选项]
  2. 生成数据库相关操作 DBVerticle(查询全部信息,通过ID查询信息,插入全部属性,插入不为空的属性,通过ID更新全部属性,通过ID更新不为空的属性,通过Assist更新全部属性,通过Assist更新不为空的属性,通过ID删除信息,通过Assist删除信息)[可选项]
  3. 生成业务逻辑相关操作 serviceVerticle [可选项]
  4. 生成web API相关接口 Router [可选项]
  5. 生成SQL类 继承自AbstractSQL 用于得到操作数据库的语句与参数
  6. 生成查询工具Assist(Assist为CMEU特别定制的查询工具,使用该工具一切操作都变得超简单,比如:分页通过Assist只需要设置2个参数就可以实现比如参数1=10,参数2=5,查询出来就是第10行到15行的数据,同时也可以防注入动态添加查询添加,去重,排序,自定义返回列等)可选项;

程序主界面

程序主界面

工具基本目录结构:

工具基本目录结构

config:用于存放数据库,配置信息等,里面为sqlite数据库文件,当升级版本时可以将改文件代替新版本便可以保留原有的数据;

libs:用于存放VertX-generator所需jar包,以及数据库连接jar包(可自己更换);

logs:用于存放VertX-generator运行时的系统日志,其info文件夹为普通日志,error文件夹为异常日志;

template:用于存放生成模板,如果要恢复默认模板删除该文件夹便可以,系统默认模板以Temp-default开头,自定义模板建议以Temp-Custom开通,VertX-generator只之别带Temp/temp开头的模板;

运行环境要求:运行该工具需要JDK1.8.66及以上;因为本工具使用的信息提示为jdk1.8.40的特新,开发环境基于jdk1.8.66开发,当系统中存在JDK1.8.66以上(最少已知的特新中要求jdk版本号大于1.8.40),双击运行或者终端java -jar VertX-Generator.jar运行;

首页使用说明

首页

系统多大部分选择框相关的都有tooltip提示说明:将鼠标悬停在其上后便会做出相应的提示;

工具提示

1.数据库连接

连接到现有的数据库,连接完成后闲置在⑸中, 数据库连接

2.配置信息

管理现有的配置信息,比如加载或者删除等, 配置信息

3.模板设置

用于配置生成时采用哪个模板, 模板设置

4.使用说明

使用说明包括软件当前版本号,文档地址,源码地址,以及模板仓库地址

5.数据库列表

当添加数据库连接后,可以双击显示数据库中所以的表,也可以用过右键,全库生成/打开/关闭/修改/删除现有的数据库连接; 全库生成既将当前数据库中所有的表都生成

6.项目所在目录:

输入或者通过按钮选择将文件生成到某个目录

7.表的名字:

通过双击选择所要创建的表名将表的信息加载至右侧数据面板;

8.实体类相关,9.DaoVerticle相关,10.BizVerticle相关,11.Router相关,12.SQL相关:

从左到右分别为是否创建

类的包名比如com.entity,类名字,需要留一个{c}用于将表名帕斯卡后填充进去

属性设置,做相关的设置

13.SqlAssist相关

SqlAssist为SQL的帮助类主要用于做条件查询相关,比如去重,排序,分页,指定返回列等 SqlAssist

14.AbstractSQL相关

AbstractSQL有四个抽象的方法需要实现,分别是表名,主键,列,属性,SQL类继承该类并实现它的方法,便可以进行数据库相关的操作 AbstractSQL

15.SqlAndParams相关

SqlAndParams实SQL相关的返回值,指定操作后SQL会返回执行的SQL语句与参数,用户就可以拿SQL语句与参数进行执行

16.文件编码格式

用于指定生成时采用什么编码格式生成

17.JsonObject属性驼峰命名

当不生成实体类时,系统就会采用json的格式进行操作,打扣时系统会将表中的列进行驼峰命名,如果不打勾则列名是什么就采用什么

18.执行创建

当所有地方设置选择完毕以后就可以点击执行创建

19.保存配置

保存配置的范围,包括模板,实体类,dao,biz,router,sql以及首页数据面板,系统默认识别default如果配置文件中存在default就会加载default

新建数据库连接

connection

连接名称:

连接名称用于保存当前连接,名字用户自定义,当保存后将会显示在首页左侧树形菜单

主机名/Ip地址:

主机名/Ip地址指定数据库的地址,比如本机的localhost或者127.0.0.1

端口号:

端口号为数据库的端口号比如oracle:1521

数据库类型:

CMEU目前支持4种数据库,通过下拉框选择相应的数据库,比如:选择Oracle

数据库:

数据库为你所要连接的数据库名称,比如:连接的数据库名叫orcl,那么则填写orcl便可

用户:

数据库连接的用户名:比如:scott

密码:

数据库连接的密码:比如:tiger

编码格式:

编码格式:如果数据库有编码格式要求则下拉选择,如果数据库没有要求编码格式则不需要理会

完成添加连接:

当所有选项填写完毕后,点击测试连接;如果连接成功便会提示连接成功,如果连接失败有可能是因为数据库架包不兼容, 或者是数据库服务没有打开,失败系统会给出相应的提示;如果是架包不兼容可以往下查看注意事项;
如果连接成功,便可以选择保存连接完成数据库;

注意事项:

关于数据库驱动架包

系统默认集成的版本分别是:
Oracle=Oracle6.jar
SqlServer=sqljdbc2008.jar
MySql=mysql-connector-java-5.1.38.jar
PostgreSql=postgresql-9.4.1209.jar
如果跟你的版本不一致可以到libs(免JDK版在app/libs)里面将架包改成你的架包,但是命名规则为:数据库小写JBDC大写
示例:sqlserverJDBC.jar

驱动示例图:

配置信息

新增配置信息

配置信息用于保存首页的相关配置,比如包名,文件资源路径等,通过首页的保存配置按钮新建配置信息;
系统启动时如果配置信息中存在名为default的配置文件,系统将默认加载default配置信息,所以如果是常用的配置信息可以采用default命名

加载配置信息

可以通过配置信息->操作->加载配置;将已经保存的信息重新加载到首页;

删除配置信息

可以通过配置信息->操作->删除配置;确定便可;

实体类创建时常用设置

可以选择创建实体类的习惯并保存,后面生成实体类就会根据你的设置进行生成,
如果保存报错可能是因为旧版本的config.db跟新版本的config.db不兼容,可以删除config文件夹中的config.db再执行

模板设置

模板设置用于配置生成时采用哪些模板进行生成
{*DBType*}占位符用于生成时填充所选择的数据库

修改属性页面说明

与首页一样大部分选择框鼠标悬浮在其上都会显示tooltip提示;

属性表格说明:

属性表格中:你可以选择是否创建该行属性,创建打钩,不创建取消打钩; 表中的列名与jdbc数据类型无法修改,java数据类型以及属性名可以自己修改成自己想要的类型/名称, java数据类型可以自己输入或者下拉选择,属性名双击列便可以输入新的名称回车修改;

选择框相关说明:

将鼠标悬浮到其选择框上面停留将会出现相应的提示!

保存配置

保存配置将属性设置为长期保存,如果你是通过别的方式加载进来的当你保存后你需要在首页再保存一次,首页保存的会覆盖当前保存页

表的别名:

表的别名用于结果就是 表名 as 设置了的表别名

表主键名称:

系统会自动识别表中的主键,如果识别有误的话可以自己改正;

自定义属性:

类型输入你要创建属性的类型;名称输入你要创建的属性名称;点击->添加 便会将属性添加到类中;

确定与取消说明:

当点击确定的时候完成当前的所以修改;当点击取消的时候系统会提示你如果取消的话所有的修改将无效,这个时候你可以选择取消操作或者确定操作;

Dao/Biz/Router/SQL相关说明

AbstractSQL接口说明

//-----------------抽象方法所有继承该类的都比需要实现--------------------
protected abstract String tableName (); //获取数据库中表的名字
protected abstract String primaryId (); //获取数据库中表主键的列名
protected abstract String columns (); //获取数据库中表的所有列
protected abstract List<SqlPropertyValue<?>> propertyValue (T obj); //获取类的参数值,既得到对应着表中列的属性值

//-----------------通用方法,继承得到,如果没有主键则部分需要重写--------------------
// SqlAndParams用于返回操作语句与参数值 public SqlAndParams getCount (SqlAssist assist); //获取数据总行数
public SqlAndParams selectAll (SqlAssist assist); //查询所有数据
public SqlAndParams selectAllByPage (SqlAssist assist); //通过分页查询所有数据
public <S> SqlAndParams selectById (S primaryValue); //通过id查询数据
public <S> SqlAndParams selectById (S primaryValue , String resultColumns ); //通过id查询数据,返回指定的列
public SqlAndParams selectByObj (T obj); //通过对象查询数据
public SqlAndParams selectByObj (T obj , String resultColumns ); //通过对象查询数据,返回指定的列
public SqlAndParams insertAll (T obj); //插入所有数据包括值为null
public SqlAndParams insertNonEnpty (T obj); //插入值不为null的数据
public SqlAndParams updateAllById (T obj); //通过id更新所有数据包括值为nul
public SqlAndParams updateNonEmptyById (T obj); //通过id更新值不为nul的数据
public SqlAndParams updateAllByAssist (T obj , SqlAssist assist ); //通过Assist更新所有数据包括值为nul
public SqlAndParams updateNonEmptyByAssist (T obj , SqlAssist assist ); //通过Assist值不为nul的数据
public <S> SqlAndParams deleteById (S primaryValue); //通过id删除数据
public SqlAndParams deleteByAssist (SqlAssist assist); ///通过Assist删除数据

SqlAssist使用说明

Assist是特别定制的查询帮助类,一个项目一个Assist类足以在全部地方使用,生成Assist时,系统会自动检测是否存在Assist,如果存在Assist系统不会再次创建;如果不存在才会创建;

Assist支持链式操作,也就是流操作

new Assist().setRowSize(5).setStartRow(10);

distinct去重说明:

distinct为是否去除重复的数据,当需要去重时调用Assist对象的setDistinct(boolean)方法;true为去重,不去重则不需要理会

order排序说明:

order可以支持多行排序,通过多项的setOrders方法,然后使用SqlAssist的静态方法order添加,

assist.setOrders(SqlAssist.order("列名1", true),SqlAssist.order("列名2", false));

startRow/rowSize--->分页说明:

startRow:从第几行开始取数据 注意事项:数据从0开始;

rowSize:每次取多少行数据;

示例:

SqlAssist assist = new SqlAssist ();
assist.setStartRow(0).setRowSize(15);
//从第1行开始取数据,取15行数据

resultColumn自定义列说明:

resultColumn为自定义返回的列,比如表中有5列,你只想取出2列,这个时候你就可以调用Assist对象的setResultColumn(String resultColumn)方法, 参数为想要取出的列,多个列以逗号,分开;比如要取出id跟名字那么参数的参数值就为===>"id as 别名 , name as 别名";

condition条件集说明:

condition属性为条件集,当查询的时需要条件,就可以调用Assist对象的setConditions(SqlWhereCondition... require)方法,参数个数无限,可以直接使用Assist的静态条件方法传入条件;有以下静态条件方法:
Assist静态方法
静态条件方法使用为:Assist.xxxXxx("表名.列名","值");当只操作一张表或者没有重复列名的时候可以只写列名, 当然如果静态条件方法不满足你也可以新建一个对象传入;

综合使用案例:

使用案例图片

项目开源地址 https://github.com/shenzhenMirren/vertx-generator

The MIT License (MIT)

Copyright (c) 2017 github.shenzhenMirren

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.