import com.twitter.finagle.Mysql;
import com.twitter.finagle.mysql.*;
import com.twitter.util.Function;
import com.twitter.util.Future;
public class FinagleMySQLExample {
public static void main(String[] args) {
MysqlClient client = Mysql.client().newRichClient("localhost:3306");
Request request = Request.apply("SELECT * FROM users");
Future<Response> future = client.sendRequest(request);
future.onSuccess(new Function<Response, BoxedUnit>() {
@Override
public BoxedUnit apply(Response response) {
Result result = response.getResult();
if (result instanceof Result.Select) {
Result.Select selectResult = (Result.Select) result;
selectResult.rows().foreach(new Function<Row, BoxedUnit>() {
@Override
public BoxedUnit apply(Row row) {
System.out.println(row.getString("username"));
return BoxedUnit.UNIT;
}
});
}
return BoxedUnit.UNIT;
}
});
future.onFailure(new Function<Throwable, BoxedUnit>() {
@Override
public BoxedUnit apply(Throwable throwable) {
throwable.printStackTrace();
return BoxedUnit.UNIT;
}
});
future.get();
client.close();
}
}
<dependency>
<groupId>com.twitter.finagle</groupId>
<artifactId>finagle-mysql_2.12</artifactId>
<version>21.3.0</version>
</dependency>
mysql {
com.twitter.finagle.mysql.host = "localhost"
com.twitter.finagle.mysql.port = 3306
com.twitter.finagle.mysql.user = "username"
com.twitter.finagle.mysql.password = "password"
com.twitter.finagle.mysql.database = "database_name"
}