diff --git a/src/org/redkale/boot/NodeServer.java b/src/org/redkale/boot/NodeServer.java
index 61a708801..196843b54 100644
--- a/src/org/redkale/boot/NodeServer.java
+++ b/src/org/redkale/boot/NodeServer.java
@@ -272,7 +272,6 @@ public abstract class NodeServer {
if (Modifier.isAbstract(type.getModifiers())) continue; //修饰abstract的类跳过
if (DataSource.class.isAssignableFrom(type)) continue;
if (CacheSource.class.isAssignableFrom(type)) continue;
- if (DataSQLListener.class.isAssignableFrom(type)) continue;
if (DataCacheListener.class.isAssignableFrom(type)) continue;
if (WebSocketNode.class.isAssignableFrom(type)) continue;
}
diff --git a/src/org/redkale/service/DataSQLListenerService.java b/src/org/redkale/service/DataSQLListenerService.java
deleted file mode 100644
index 5e875bf64..000000000
--- a/src/org/redkale/service/DataSQLListenerService.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.redkale.service;
-
-import org.redkale.source.DataSQLListener;
-import org.redkale.source.DataSource;
-import org.redkale.source.DataDefaultSource;
-import org.redkale.util.AnyValue;
-import org.redkale.util.AutoLoad;
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.logging.*;
-import javax.annotation.Resource;
-import org.redkale.util.*;
-
-/**
- * 暂时不实现
- *
- *
- * 详情见: http://redkale.org
- *
- * @author zhangjx
- */
-@Deprecated
-@AutoLoad(false)
-@ResourceType({DataSQLListenerService.class, DataSQLListener.class})
-public class DataSQLListenerService implements DataSQLListener, Service {
-
- private static final String format = "%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS.%tL";
-
- protected final Logger logger = Logger.getLogger(this.getClass().getSimpleName());
-
- private final boolean finest = logger.isLoggable(Level.FINEST);
-
- @Resource(name = "APP_HOME")
- private File home;
-
- @Resource(name = "$")
- private DataSource source;
-
- private final BlockingQueue queue = new ArrayBlockingQueue<>(1024 * 1024);
-
- private PrintStream syncfile;
-
- @Override
- public void init(AnyValue config) {
- new Thread() {
- {
- setName(DataSQLListener.class.getSimpleName() + "-Thread");
- setDaemon(true);
- }
-
- @Override
- public void run() {
- while (true) {
- try {
- String sql = queue.take();
- send(sql);
- } catch (Exception e) {
- logger.log(Level.SEVERE, this.getName() + " occur error");
- }
- }
- }
- }.start();
-
- }
-
- public String name() {
- return this.getClass().getAnnotation(Resource.class).name();
- }
-
- @Override
- public void destroy(AnyValue config) {
- if (syncfile != null) syncfile.close();
- }
-
- private void write(String... sqls) {
- try {
- if (syncfile == null) {
- File root = new File(home, "dbsync");
- root.mkdirs();
- syncfile = new PrintStream(new FileOutputStream(new File(root, "sql-" + name() + ".sql"), true), false, "UTF-8");
- }
- for (String sql : sqls) {
- syncfile.print(sql + ";\r\n");
- }
- syncfile.flush();
- } catch (Exception e) {
- logger.log(Level.WARNING, "write sql file error. (" + name() + ", " + Arrays.toString(sqls) + ")", e);
- }
- }
-
- @Override
- public void insert(String... sqls) {
- put(sqls);
- }
-
- @Override
- public void update(String... sqls) {
- put(sqls);
- }
-
- @Override
- public void delete(String... sqls) {
- put(sqls);
- }
-
- private void put(String... sqls) {
- String date = String.format(format, System.currentTimeMillis());
- for (String sql : sqls) {
- try {
- queue.put("/* " + date + " */ " + sql);
- } catch (Exception e) {
- write(sql);
- }
- }
- }
-
- @MultiRun(selfrun = false, async = true)
- public void send(String... sqls) {
- ((DataDefaultSource) source).directExecute(sqls);
- }
-
-}
diff --git a/src/org/redkale/source/DataDefaultSource.java b/src/org/redkale/source/DataDefaultSource.java
index db7117448..e505e3d02 100644
--- a/src/org/redkale/source/DataDefaultSource.java
+++ b/src/org/redkale/source/DataDefaultSource.java
@@ -69,9 +69,6 @@ public final class DataDefaultSource implements DataSource, Function[] attrs = info.insertAttributes;
- String[] sqls = new String[values.length];
if (distributed && !info.initedPrimaryValue && primaryType.isPrimitive()) { //由DataSource生成主键
synchronized (info) {
if (!info.initedPrimaryValue) { //初始化最大主键值
@@ -363,7 +359,7 @@ public final class DataDefaultSource implements DataSource, Function PreparedStatement createInsertPreparedStatement(final Connection conn, final String sql,
- final EntityInfo info, final String[] sqls, T... values) throws SQLException {
+ final EntityInfo info, T... values) throws SQLException {
Attribute[] attrs = info.insertAttributes;
final PreparedStatement prestmt = info.autoGenerated
? conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS) : conn.prepareStatement(sql);
- if (writeListener == null) {
- for (final T value : values) {
- int i = 0;
- if (info.distributed || info.autouuid) info.createPrimaryValue(value);
- for (Attribute attr : attrs) {
- prestmt.setObject(++i, attr.get(value));
- }
- prestmt.addBatch();
- }
- } else { //调用writeListener回调接口
- char[] sqlchars = sql.toCharArray();
- CharSequence[] ps = new CharSequence[attrs.length];
- int index = 0;
- for (final T value : values) {
- int i = 0;
- if (info.distributed || info.autouuid) info.createPrimaryValue(value);
- for (Attribute attr : attrs) {
- Object a = attr.get(value);
- ps[i] = FilterNode.formatToString(a);
- prestmt.setObject(++i, a);
- }
- prestmt.addBatch();
- //-----------------------------
- StringBuilder sb = new StringBuilder(128);
- i = 0;
- for (char ch : sqlchars) {
- if (ch == '?') {
- sb.append(ps[i++]);
- } else {
- sb.append(ch);
- }
- }
- sqls[index++] = sb.toString();
+
+ for (final T value : values) {
+ int i = 0;
+ if (info.distributed || info.autouuid) info.createPrimaryValue(value);
+ for (Attribute attr : attrs) {
+ prestmt.setObject(++i, attr.get(value));
}
+ prestmt.addBatch();
}
return prestmt;
}
@@ -558,17 +527,13 @@ public final class DataDefaultSource implements DataSource, Function 详情见: http://redkale.org
- * @author zhangjx
- */
-public interface DataSQLListener {
-
- public void insert(String... sqls);
-
- public void update(String... sqls);
-
- public void delete(String... sqls);
-}