4 Star 10 Fork 4

Mirren / vertx-sql-assist

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

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=3
assist.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 desc
assist.setOrders(SqlAssist.order("seq", false));
// (6)获取数据库中第20-35行的数据,你也可以使用setPage(第几页)的方式进行分页获取,相当于SQL: limit 20,15
assist.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");
MIT License Copyright (c) 2019 MirrenTools 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.

简介

Vert.x 的SQL操作帮助工具 展开 收起
Java
MIT
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/mirren/vertx-sql-assist.git
git@gitee.com:mirren/vertx-sql-assist.git
mirren
vertx-sql-assist
vertx-sql-assist
master

搜索帮助