AsyncConnection

This commit is contained in:
redkale
2024-08-20 22:43:50 +08:00
parent 21cb0e191e
commit a33f5dcd6f
2 changed files with 34 additions and 16 deletions

View File

@@ -224,10 +224,28 @@ public abstract class AsyncConnection implements Channel, AutoCloseable {
protected abstract void readImpl(CompletionHandler<Integer, ByteBuffer> handler); protected abstract void readImpl(CompletionHandler<Integer, ByteBuffer> handler);
// src写完才会回调 /**
* src写完才会回调
*
* @see org.redkale.net.AsyncNioConnection#writeImpl(java.nio.ByteBuffer, java.lang.Object, java.nio.channels.CompletionHandler)
* @param <A> A
* @param src ByteBuffer
* @param attachment A
* @param handler CompletionHandler
*/
protected abstract <A> void writeImpl(ByteBuffer src, A attachment, CompletionHandler<Integer, ? super A> handler); protected abstract <A> void writeImpl(ByteBuffer src, A attachment, CompletionHandler<Integer, ? super A> handler);
// srcs写完才会回调 /**
* srcs写完才会回调
*
* @see org.redkale.net.AsyncNioConnection#writeImpl(java.nio.ByteBuffer[], int, int, java.lang.Object, java.nio.channels.CompletionHandler)
* @param <A> A
* @param srcs ByteBuffer[]
* @param offset offset
* @param length length
* @param attachment A
* @param handler CompletionHandler
*/
protected abstract <A> void writeImpl( protected abstract <A> void writeImpl(
ByteBuffer[] srcs, int offset, int length, A attachment, CompletionHandler<Integer, ? super A> handler); ByteBuffer[] srcs, int offset, int length, A attachment, CompletionHandler<Integer, ? super A> handler);

View File

@@ -1289,7 +1289,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource
.toString(); .toString();
} }
return String.valueOf(value); return String.valueOf(value);
} else if (value != null && value instanceof CharSequence && "postgresql".equals(dbtype)) { } else if (value instanceof CharSequence && "postgresql".equals(dbtype)) {
String s = String.valueOf(value); String s = String.valueOf(value);
int pos = s.indexOf('\''); int pos = s.indexOf('\'');
if (pos >= 0) { if (pos >= 0) {
@@ -1564,7 +1564,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource
protected <T> String[] deleteSql( protected <T> String[] deleteSql(
final EntityInfo<T> info, String[] tables, final Flipper flipper, final FilterNode node) { final EntityInfo<T> info, String[] tables, final Flipper flipper, final FilterNode node) {
Map<Class, String> joinTabalis = null; Map<Class, String> joinTabalis;
CharSequence join = null; CharSequence join = null;
CharSequence where = null; CharSequence where = null;
if (node != null) { if (node != null) {
@@ -3003,24 +3003,24 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource
final FilterNode node) { final FilterNode node) {
final StringBuilder groupBySqlColumns = new StringBuilder(); final StringBuilder groupBySqlColumns = new StringBuilder();
if (groupByColumns != null && groupByColumns.length > 0) { if (groupByColumns != null && groupByColumns.length > 0) {
for (int i = 0; i < groupByColumns.length; i++) { for (String groupByColumn : groupByColumns) {
if (groupBySqlColumns.length() > 0) { if (groupBySqlColumns.length() > 0) {
groupBySqlColumns.append(", "); groupBySqlColumns.append(", ");
} }
groupBySqlColumns.append(info.getSQLColumn("a", groupByColumns[i])); groupBySqlColumns.append(info.getSQLColumn("a", groupByColumn));
} }
} }
final StringBuilder funcSqlColumns = new StringBuilder(); final StringBuilder funcSqlColumns = new StringBuilder();
for (int i = 0; i < funcNodes.length; i++) { for (ColumnNode funcNode : funcNodes) {
if (funcSqlColumns.length() > 0) { if (funcSqlColumns.length() > 0) {
funcSqlColumns.append(", "); funcSqlColumns.append(", ");
} }
if (funcNodes[i] instanceof ColumnFuncNode) { if (funcNode instanceof ColumnFuncNode) {
funcSqlColumns.append(info.formatColumnFuncNodeSQLValue( funcSqlColumns.append(info.formatColumnFuncNodeSQLValue(
(Attribute) null, "a", (ColumnFuncNode) funcNodes[i], sqlFormatter)); (Attribute) null, "a", (ColumnFuncNode) funcNode, sqlFormatter));
} else { } else {
funcSqlColumns.append(info.formatColumnExpNodeSQLValue( funcSqlColumns.append(info.formatColumnExpNodeSQLValue(
(Attribute) null, "a", (ColumnExpNode) funcNodes[i], sqlFormatter)); (Attribute) null, "a", (ColumnExpNode) funcNode, sqlFormatter));
} }
} }
final Map<Class, String> joinTabalis = node == null ? null : node.getJoinTabalis(); final Map<Class, String> joinTabalis = node == null ? null : node.getJoinTabalis();
@@ -3786,7 +3786,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource
final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) { final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) {
if (isAsync()) { if (isAsync()) {
return querySheetAsync(true, false, true, clazz, selects, flipper, node) return querySheetAsync(true, false, true, clazz, selects, flipper, node)
.thenApply((rs) -> new LinkedHashSet<>(rs.list(true))) .thenApply(rs -> new LinkedHashSet<>(rs.list(true)))
.join(); .join();
} else { } else {
return new LinkedHashSet<>( return new LinkedHashSet<>(
@@ -3799,10 +3799,10 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource
final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) { final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) {
if (isAsync()) { if (isAsync()) {
return querySheetAsync(true, false, true, clazz, selects, flipper, node) return querySheetAsync(true, false, true, clazz, selects, flipper, node)
.thenApply((rs) -> new LinkedHashSet<>(rs.list(true))); .thenApply(rs -> new LinkedHashSet<>(rs.list(true)));
} else { } else {
return supplyAsync(() -> querySheet(true, false, true, clazz, selects, flipper, node)) return supplyAsync(() -> querySheet(true, false, true, clazz, selects, flipper, node))
.thenApply((rs) -> new LinkedHashSet<>(rs.list(true))); .thenApply(rs -> new LinkedHashSet<>(rs.list(true)));
} }
} }
@@ -3811,7 +3811,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource
final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) { final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) {
if (isAsync()) { if (isAsync()) {
return querySheetAsync(true, false, false, clazz, selects, flipper, node) return querySheetAsync(true, false, false, clazz, selects, flipper, node)
.thenApply((rs) -> rs.list(true)) .thenApply(rs -> rs.list(true))
.join(); .join();
} else { } else {
return querySheet(true, false, false, clazz, selects, flipper, node).list(true); return querySheet(true, false, false, clazz, selects, flipper, node).list(true);
@@ -3823,10 +3823,10 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource
final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) { final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) {
if (isAsync()) { if (isAsync()) {
return querySheetAsync(true, false, false, clazz, selects, flipper, node) return querySheetAsync(true, false, false, clazz, selects, flipper, node)
.thenApply((rs) -> rs.list(true)); .thenApply(rs -> rs.list(true));
} else { } else {
return supplyAsync(() -> querySheet(true, false, false, clazz, selects, flipper, node)) return supplyAsync(() -> querySheet(true, false, false, clazz, selects, flipper, node))
.thenApply((rs) -> rs.list(true)); .thenApply(rs -> rs.list(true));
} }
} }