All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertx.ext.sql.assist.SQLExecute Maven / Gradle / Ivy

package io.vertx.ext.sql.assist;

import java.util.List;

import io.vertx.core.AsyncResult;
import io.vertx.core.Handler;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.jdbc.JDBCClient;
import io.vertx.mysqlclient.MySQLPool;
import io.vertx.pgclient.PgPool;

/**
 * SQL执行器
 * 
 * @author Mirren
 *
 */
public interface SQLExecute {
	/**
	 * 通过JDBC客户端创建一个实例
	 * 
	 * @param client
	 * @return
	 */
	static SQLExecute createJDBC(JDBCClient client) {
		return new SQLExecuteJDBCImpl(client);
	}

	/**
	 * 通过 MySQL客户端创建一个实例
	 * 
	 * @param client
	 * @return
	 */
	static SQLExecute createMySQL(MySQLPool client) {
		return new SQLExecuteMySQLImpl(client);
	}

	/**
	 * 通过 PostgreSQL客户端创建一个实例
	 * 
	 * @param client
	 * @return
	 */
	static SQLExecute createPostgreSQL(PgPool client) {
		return new SQLExecutePgImpl(client);
	}

	/**
	 * 获取客户端
	 * 
	 * @return
	 */
	T getClient();

	/**
	 * 执行查询
	 * 
	 * @param qp
	 *          SQL语句与参数
	 * @param handler
	 *          返回结果
	 */
	void queryAsObj(SqlAndParams qp, Handler> handler);

	/**
	 * 执行查询
	 * 
	 * @param qp
	 *          SQL语句与参数
	 * @param handler
	 *          返回结果
	 */
	void queryAsListObj(SqlAndParams qp, Handler>> handler);

	/**
	 * 执行查询
	 * 
	 * @param qp
	 *          SQL语句与参数
	 * @param handler
	 *          返回结果
	 */
	void queryAsListArray(SqlAndParams qp, Handler>> handler);

	/**
	 * 执行更新等操作得到受影响的行数
	 * 
	 * @param qp
	 *          SQL语句与参数
	 * 
	 * @param handler
	 */
	void update(SqlAndParams qp, Handler> handler);

	/**
	 * 批量操作
	 * 
	 * @param qp
	 *          SQL语句与批量参数
	 * 
	 * @param handler
	 *          返回结果
	 */
	void batch(SqlAndParams qp, Handler>> handler);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy