public static void toJson(ResultSet obj, java.util.Map<String, Object> json) { if (obj.getColumnNames() != null) { JsonArray array = new JsonArray(); obj.getColumnNames().forEach(item -> array.add(item)); json.put("columnNames", array); } if (obj.getNext() != null) { json.put("next", obj.getNext().toJson()); } json.put("numColumns", obj.getNumColumns()); json.put("numRows", obj.getNumRows()); if (obj.getOutput() != null) { json.put("output", obj.getOutput()); } if (obj.getResults() != null) { JsonArray array = new JsonArray(); obj.getResults().forEach(item -> array.add(item)); json.put("results", array); } if (obj.getRows() != null) { JsonArray array = new JsonArray(); obj.getRows().forEach(item -> array.add(item)); json.put("rows", array); } } }
@Test public void testStoredProcedure4() { client.callWithParams("{call times2(?)}", new JsonArray().add(2), new JsonArray().add("INTEGER"), onSuccess(resultSet -> { assertNotNull(resultSet); assertEquals(0, resultSet.getResults().size()); assertEquals(new Integer(4), resultSet.getOutput().getInteger(0)); testComplete(); })); await(); }
@Test public void testStoredProcedure3() { connection().callWithParams("{call times2(?)}", new JsonArray().add(2), new JsonArray().add("INTEGER"), onSuccess(resultSet -> { assertNotNull(resultSet); assertEquals(0, resultSet.getResults().size()); assertEquals(new Integer(4), resultSet.getOutput().getInteger(0)); testComplete(); })); await(); }
@Test public void testStoredProcedure1() { connection().callWithParams("{call customer_lastname(?, ?)}", new JsonArray().add("Paulo"), new JsonArray().addNull().add("VARCHAR"), onSuccess(resultSet -> { assertNotNull(resultSet); assertEquals(0, resultSet.getResults().size()); assertEquals("Lopes", resultSet.getOutput().getString(1)); testComplete(); })); await(); }
/** * This test has been marked as ignored since it can only run on mysql and it might not be 100% correct. * A procedure is not supposed to return data by definition however MySQL allows this mix... * * This requires the following proc to be installed on a MySQL server: * * create DATABASE test; * use test; * * DROP PROCEDURE `proc_test`; * * DELIMITER $$ * CREATE PROCEDURE `proc_test`(IN firstname varchar(45), OUT lastname varchar(45)) * BEGIN * select concat(firstname, '!!!') into lastname; * select now(6); * END$$ * DELIMITER ; */ @Test @Ignore public void testStoredProcedure1() { connection().callWithParams("{call proc_test(?, ?)}", new JsonArray().add("zepinos"), new JsonArray().addNull().add("VARCHAR"), onSuccess(resultSet -> { assertNotNull(resultSet); assertEquals(1, resultSet.getResults().size()); assertEquals("zepinos!!!", resultSet.getOutput().getString(1)); testComplete(); })); await(); }