• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

vertx-sql-assist: Vert.x 的SQL操作帮助工具

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

vertx-sql-assist

开源软件地址:

https://gitee.com/mirren/vertx-sql-assist

开源软件介绍:

vertx-sql-assist

其他语言版本: English, 简体中文.

vertx-sql-assist是 Vert.x 的SQL操作帮助工具,它提供了增删改查、连接、分页等支持,配合SqlAssist帮助类自己基本不用写一行SQL代码。

我们推荐你使用 ScrewDriver 来生成代码,这样你会发现世界非常美好!

添加依赖

<dependency>  <groupId>org.mirrentools</groupId>  <artifactId>vertx-sql-assist</artifactId>  <version>RELEASE</version></dependency>

SQL类方法说明

  • getCount 获取数据总行数
  • selectAll 查询多行数据
  • limitAll 分页查询
  • selectById 通过id查询数据
  • selectByObj 通过对象中不为空的属性查询数据
  • selectSingleByObj 通过对象中不为空的属性查询数据只取返回的第一行数据
  • insertBatch 批量添加插入对象
  • insertAll 插入一个对象包括属性值为null的值
  • insertNonEmpty 插入一个对象,只插入对象中值不为null的属性
  • insertNonEmptyGeneratedKeys 插入一个对象,只插入对象中值不为null的属性,并返回自增的id
  • replace 插入一个对象,如果该对象不存在就新建如果该对象已经存在就更新
  • updateAllById 更新一个对象中所有的属性包括null值,条件为对象中的主键值
  • updateAllByAssist 更新一个对象中所有的属性包括null值,条件为SqlAssist帮助类
  • updateNonEmptyById 更新一个对象中属性不为null值,条件为对象中的主键值
  • updateNonEmptyByAssist 更新一个对象中属性不为null值,条件为SqlAssist帮助类
  • updateSetNullById 通过主键值设置指定的列为空
  • updateSetNullByAssist 通过Assist作为条件设置指定的列为空
  • deleteById 通过主键值删除对应的数据行
  • deleteByAssist 通过SqlAssist条件集删除对应的数据行
  • queryAsObj 执行查询结果为JsonObject
  • queryAsList 执行查询结果为List
  • update 执行更新等操作得到受影响的行数
  • updateResult 执行更新等操作得到想要的结果,比如自增的id
  • batch 批量执行
  • execute 原生执行

SqlAssist方法说明

  • setOrders 设置排序,通过SqlAssist.order(列名,排序方式)
  • setGroupBy 设置分组
  • setHaving 设置分组条件
  • setDistincts 设置是否去重,true去重
  • setPage 设置第几页,该值仅在limitAll方法中有效,最终会被转换为startRow
  • setStartRow 设置从第几行开始取数据
  • setRowSize 设置每次取多少行数据
  • setResultColumn 设置自定义返回列,多个列以,逗号隔开
  • setJoinOrReference 设置连接查询或多表查询语句
  • and 添加并且条件
  • or 添加或者条件
  • andEq 添加并且等于条件
  • orEq 添加或者等于条件
  • andNeq 添加并且不等于条件
  • orNeq 添加或者不等于条件
  • andLt 添加并且小于条件
  • orLt 添加或者小于条件
  • andLte 添加并且小于等于条件
  • orLte 添加或者小于等于条件
  • andGt 添加并且大于条件
  • orGt 添加或者大于条件
  • andGte 添加并且大于等于条件
  • orGte 添加或者大于等于条件
  • andLike 添加并且like条件
  • orLike 添加或者like条件
  • andNotLike 添加并且not like条件
  • orNotLike 添加或者not like条件
  • andisNull 添加并且is null条件
  • orisNull 添加或者is null条件
  • andIsNotNull 添加并且is not null条件
  • orIsNotNull 添加或者is not null条件
  • setConditions 添加查询条件
  • customCondition 添加自定义查询条件

SqlAssist使用示例

示例项目

// (1)创建Assist帮助类SqlAssist assist = new SqlAssist();// (2)添加条件type=1或3,相当于SQL: where type=1 or type=3assist.orEq("type", 1).orEq("type", 3);// (3)去掉重复的数据,相当于SQL: select distinct ...assist.setDistincts(true);// (4)自定义只返回id,type,name,seq列assist.setResultColumn("id,type,name,seq");// (5)通过seq类倒序排序,相当于SQL: order by seq descassist.setOrders(SqlAssist.order("seq", false));// (6)获取数据库中第20-35行的数据,你也可以使用setPage(第几页)的方式进行分页获取,相当于SQL: limit 20,15assist.setStartRow(20).setRowSize(15);// (7)执行获取数据Future future=Promise.promise().future();future.setHandler(//处理结果);itemsSQL.selectAll(assist,future);

具体使用方式可以查看SqlAssist类的方法注释,如果不清楚的可以在ScrewDriver群里咨询

使用方法

示例

1.创建实体类

//添加表注释@Table("表的名称")public class User {  @TableId("主键id")  private Long id;  @TableColumn("列的名称")  private String name;  @TableColumn(value = "列的名称", alias = "列的别名,不是必须")  private Integer type;  //其他必须的}  

2.创建SQL类并继承CommonSQL

public class UserSQL extends CommonSQL<User,JDBCPool> {//(1)	public UserSQL(SQLExecute<JDBCPool> execute) {		super(execute);	}  // (1)  // User 必须是有@Table, @TableId,@TableColumn注解的实体类,或重写一个实现了表名,id,返回列的SQLStatement传给CommonSQL  // JDBCPool 可以是别的数据库客户端  //实现其他的方法}  

3.执行

public static void main(String[] args) {  // 其他已省略的变量  UserSQL userSQL = new UserSQL(SQLExecute.createJDBC(JDBCPool));  // 查询示例  // 创建帮助类  SqlAssist assist = new SqlAssist();  assist.setStartRow(0).setRowSize(15);  assist.andEq("type", 1);  assist.setOrders(SqlAssist.order("id", true));  // 执行查询  userSQL.selectAll(assist,res->{    if (res.succeeded()) {      System.out.println(res.result());    }else {      System.err.println(res.cause());    }  });  //保存示例  User user =new User();  user.setId(1001L);  user.setName("org.mirrentools");  user.setType(1);  userSQL.insertNonEmpty(user,res->{//Processed results});}

通用设置

设置不同数据库SQL语句 默认使用MySQL标准的SQL语句,你可以通过SQLStatement设置为不同的数据库SQL语句,支持MySQL、PostgreSQL、Oracle、DB2、SQL Server、SQLite,比如设置为Oracle你可以这样:

SQLStatement.register(OracleStatementSQL.class);

设置分页返回结果名称 分页获取数据返回的名称默认为:totals=数据总行数,pages=数据总页数 ,page=当前是第几页,size=每页显示多少行数据,data=数据,如果你要将名称改为其他的你可以这样:

SqlLimitResult.registerResultKey("totals", "counts");

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap