Skip to content

Instantly share code, notes, and snippets.

@kazuki43zoo
Last active February 11, 2020 14:08
Show Gist options
  • Save kazuki43zoo/2ede3dcbb857d7b23d685af08b5d4ea8 to your computer and use it in GitHub Desktop.
Save kazuki43zoo/2ede3dcbb857d7b23d685af08b5d4ea8 to your computer and use it in GitHub Desktop.
R2DBC + MyBatis
package org.mybatis.r2dbc.session;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
public interface DemoMapper {
Mono<Integer> insert(Demo demo);
Mono<Integer> insert(Mono<Demo> demo);
Mono<Boolean> update(Demo demo);
Flux<Demo> select();
class Demo {
}
}
package org.mybatis.reactive;
import org.reactivestreams.Publisher;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
public interface ReactorSqlSession extends ReactiveSqlSession {
@Override
default <T> Flux<T> select(String statementId, Class<T> returnType) {
return select(statementId, (Object) null, returnType);
}
@Override
default <T> Flux<T> select(String statementId, Object parameter, Class<T> returnType) {
return select(statementId, parameter == null ? null : Mono.just(parameter), returnType);
}
@Override
<T> Flux<T> select(String statementId, Publisher<Object> parameterPublisher, Class<T> returnType);
@Override
default Mono<Integer> insert(String statementId) {
return insert(statementId, (Object) null);
}
@Override
default Mono<Integer> insert(String statementId, Object parameter) {
return insert(statementId, parameter == null ? null : Mono.just(parameter));
}
@Override
Mono<Integer> insert(String statementId, Publisher<Object> parameterPublisher);
@Override
default Mono<Integer> update(String statementId) {
return update(statementId, (Object) null);
}
@Override
default Mono<Integer> update(String statementId, Object parameter) {
return update(statementId, parameter == null ? null : Mono.just(parameter));
}
@Override
Mono<Integer> update(String statementId, Publisher<Object> parameter);
@Override
default Mono<Integer> delete(String statementId) {
return delete(statementId, (Object) null);
}
@Override
default Mono<Integer> delete(String statementId, Object parameter) {
return update(statementId, parameter == null ? null : Mono.just(parameter));
}
@Override
default Mono<Integer> delete(String statementId, Publisher<Object> parameterPublisher) {
return update(statementId, parameterPublisher);
}
@Override
Mono<Void> begin();
@Override
Mono<Void> commit();
@Override
Mono<Void> rollback();
@Override
Mono<Void> close();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment