代码拉取完成,页面将自动刷新
vertx-sql-assist是 Vert.x 的SQL操作帮助工具,它提供了增删改查、连接、分页等支持,配合SqlAssist帮助类自己基本不用写一行SQL代码。
我们推荐你使用 ScrewDriver 来生成代码,这样你会发现世界非常美好!
<dependency>
<groupId>org.mirrentools</groupId>
<artifactId>vertx-sql-assist</artifactId>
<version>RELEASE</version>
</dependency>
// (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");
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型