MySqlExecuteHelper.java
1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.aries.crawler.tools;
import io.vertx.core.AsyncResult;
import io.vertx.core.Handler;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonArray;
import io.vertx.core.logging.Logger;
import io.vertx.core.logging.LoggerFactory;
import io.vertx.ext.sql.ResultSet;
import java.util.List;
/**
* @author arowana
*/
public class MySqlExecuteHelper {
private static final Logger logger = LoggerFactory.getLogger(MySqlExecuteHelper.class);
/**
* 防止实例化
*/
private MySqlExecuteHelper() {
}
/**
* @param vertx 全局vertx
* @param sql 要执行的sql语句
* @param arguments sql参数
* @param handler 回调
*/
public static void prepareExecute(Vertx vertx, String sql, List<Object> arguments, Handler<AsyncResult<ResultSet>> handler) {
var jdbcClient = MySqlClientHelper.getJDBcClient(vertx);
// 构造参数
JsonArray params = new JsonArray();
for (Object argument : arguments) {
params.add(argument);
}
// 执行查询
jdbcClient.queryWithParams(sql, params, handler);
}
public static void execute(Vertx vertx, String sql, Handler<AsyncResult<ResultSet>> handler) {
logger.debug("准备执行sql: " + sql);
MySqlClientHelper.getJDBcClient(vertx).getConnection(connectionHandlerRes -> {
if (connectionHandlerRes.succeeded()) {
var connection = connectionHandlerRes.result();
connection.query(sql, handler);
connection.close();
} else {
logger.error("Could not connect: " + connectionHandlerRes.cause().getMessage());
}
});
}
}