AsyncConnection
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user