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); -}