- Notifications
You must be signed in to change notification settings - Fork 27
Usage
Mirro Mutth edited this page Feb 15, 2024 · 1 revision
connection.createStatement("INSERT INTO `person` (`first_name`, `last_name`) VALUES ('who', 'how')") .execute(); // return a Publisher include one Resultconnection.createStatement("INSERT INTO `person` (`birth`, `nickname`, `show_name`) VALUES (?, ?name, ?name)") .bind(0, LocalDateTime.of(2019, 6, 25, 12, 12, 12)) .bind("name", "Some one") // Not one-to-one binding, call twice of native index-bindings, or call once of name-bindings. .add() .bind(0, LocalDateTime.of(2009, 6, 25, 12, 12, 12)) .bind(1, "My Nickname") .bind(2, "Naming show") .returnGeneratedValues("generated_id") .execute(); // return a Publisher include two Results.- All parameters must be bound before execute, even parameter is
null(usebindNullto bindnull). - It will be using client-preparing by default, see
useServerPrepareStatementin configuration. - In one-to-one binding, because native MySQL prepared statements use index-based parameters, index-bindings will have better performance than name-bindings.
connection.createBatch() .add("INSERT INTO `person` (`first_name`, `last_name`) VALUES ('who', 'how')") .add("UPDATE `earth` SET `count` = `count` + 1 WHERE `id` = 'human'") .execute(); // return a Publisher include two Results.The last
;will be removed if and only if last statement contains ';', and statement has only whitespace follow the last;.
connection.beginTransaction() .then(Mono.from(connection.createStatement("INSERT INTO `person` (`first_name`, `last_name`) VALUES ('who', 'how')").execute())) .flatMap(Result::getRowsUpdated) .thenMany(connection.createStatement("INSERT INTO `person` (`birth`, `nickname`, `show_name`) VALUES (?, ?name, ?name)") .bind(0, LocalDateTime.of(2019, 6, 25, 12, 12, 12)) .bind("name", "Some one") .add() .bind(0, LocalDateTime.of(2009, 6, 25, 12, 12, 12)) .bind(1, "My Nickname") .bind(2, "Naming show") .returnGeneratedValues("generated_id") .execute()) .flatMap(Result::getRowsUpdated) .then(connection.commitTransaction());