mirror of
				https://e.coding.net/circlecloud/YumCore.git
				synced 2025-11-03 23:06:02 +00:00 
			
		
		
		
	@@ -2,6 +2,7 @@ package pw.yumc.YumCore.bukkit;
 | 
			
		||||
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.logging.Handler;
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
@@ -363,4 +364,24 @@ public class Log {
 | 
			
		||||
    public static boolean isGlobalDebug() {
 | 
			
		||||
        return globalDebug;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String osn(List<?> classes) {
 | 
			
		||||
        StringBuilder str = new StringBuilder("[");
 | 
			
		||||
        classes.forEach(c -> str.append(c.getClass().getSimpleName()).append(", "));
 | 
			
		||||
        return classes.isEmpty() ? "[]" : str.substring(0, str.length() - 2) + "]";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String osn(Object... classes) {
 | 
			
		||||
        return osn(Arrays.asList(classes));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String csn(List<Class> classes) {
 | 
			
		||||
        StringBuilder str = new StringBuilder("[");
 | 
			
		||||
        classes.forEach(c -> str.append(c.getSimpleName()).append(", "));
 | 
			
		||||
        return classes.isEmpty() ? "[]" : str.substring(0, str.length() - 2) + "]";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String csn(Class[] classes) {
 | 
			
		||||
        return csn(Arrays.asList(classes));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -78,7 +78,7 @@ public class CommandMain implements CommandExecutor {
 | 
			
		||||
        if (ci != null) {
 | 
			
		||||
            injectPluginCommand(ci);
 | 
			
		||||
            Class[] params = method.getParameterTypes();
 | 
			
		||||
            Log.d("注册主命令 %s 参数类型: %s", ci.getName(), Arrays.toString(params));
 | 
			
		||||
            Log.d("注册主命令 %s 参数类型: %s", ci.getName(), Log.csn(params));
 | 
			
		||||
            try {
 | 
			
		||||
                Class<? extends CommandSender> sender = params[0];
 | 
			
		||||
                cmds.add(ci);
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@ public class CommandParse {
 | 
			
		||||
            if (parse == null) { throw new ParseException(String.format("存在无法解析的参数类型 %s", clazz.getName())); }
 | 
			
		||||
            this.parse.add(parse.clone().parseAnnotation(annotations).handleAttrs());
 | 
			
		||||
        }
 | 
			
		||||
        Log.d("命令解析器 %s", String.valueOf(parse));
 | 
			
		||||
        Log.d("命令解析器 %s", Log.osn(parse));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static CommandParse get(Method method) {
 | 
			
		||||
@@ -110,7 +110,7 @@ public class CommandParse {
 | 
			
		||||
                throw new ParseException(String.format("第 %s 个参数 %s", isMain ? 1 : 2 + i, e.getMessage()));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        Log.d("解析参数: %s => %s", Arrays.toString(args), pobjs);
 | 
			
		||||
        Log.d("解析参数: %s => %s", Arrays.toString(args), Log.osn(pobjs));
 | 
			
		||||
        return pobjs.toArray();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -235,7 +235,7 @@ public class CommandSub implements TabExecutor {
 | 
			
		||||
        CommandInfo ci = CommandInfo.parse(method, clazz);
 | 
			
		||||
        if (ci != null) {
 | 
			
		||||
            Class[] params = method.getParameterTypes();
 | 
			
		||||
            Log.d("注册子命令: %s 参数类型: %s", ci.getName(), Arrays.toString(params));
 | 
			
		||||
            Log.d("注册子命令: %s 参数类型: %s", ci.getName(), Log.csn(params));
 | 
			
		||||
            try {
 | 
			
		||||
                Class<? extends CommandSender> sender = params[0];
 | 
			
		||||
                // 用于消除unuse警告
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@ import java.sql.PreparedStatement;
 | 
			
		||||
import java.sql.ResultSet;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.sql.Statement;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
 | 
			
		||||
import pw.yumc.YumCore.bukkit.Log;
 | 
			
		||||
 | 
			
		||||
@@ -59,12 +60,12 @@ public abstract class DataBaseCore {
 | 
			
		||||
     *             SQL执行异常
 | 
			
		||||
     */
 | 
			
		||||
    public boolean execute(String sql, Object... obj) throws SQLException {
 | 
			
		||||
        debug(sql);
 | 
			
		||||
        debug(sql, obj);
 | 
			
		||||
        PreparedStatement ps = prepareStatement(sql);
 | 
			
		||||
        for (int i = 0; i < obj.length; i++) {
 | 
			
		||||
            ps.setObject(i + 1, obj[i]);
 | 
			
		||||
        }
 | 
			
		||||
        boolean result = ps.execute(sql);
 | 
			
		||||
        boolean result = ps.execute();
 | 
			
		||||
        ps.close();
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
@@ -98,6 +99,24 @@ public abstract class DataBaseCore {
 | 
			
		||||
        return st.executeQuery(sql);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询数据库
 | 
			
		||||
     *
 | 
			
		||||
     * @param sql
 | 
			
		||||
     *            SQL查询语句
 | 
			
		||||
     * @return 查询结果
 | 
			
		||||
     * @throws SQLException
 | 
			
		||||
     *             SQL查询异常
 | 
			
		||||
     */
 | 
			
		||||
    public ResultSet query(String sql, Object[] params) throws SQLException {
 | 
			
		||||
        debug(sql, params);
 | 
			
		||||
        PreparedStatement pst = prepareStatement(sql);
 | 
			
		||||
        for (int i = 0; i < params.length; i++) {
 | 
			
		||||
            pst.setObject(i + 1, params[i]);
 | 
			
		||||
        }
 | 
			
		||||
        return pst.executeQuery();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 更新数据库内的数据
 | 
			
		||||
     *
 | 
			
		||||
@@ -127,16 +146,40 @@ public abstract class DataBaseCore {
 | 
			
		||||
     *             SQL执行异常
 | 
			
		||||
     */
 | 
			
		||||
    public int update(String sql, Object[] obj) throws SQLException {
 | 
			
		||||
        debug(sql);
 | 
			
		||||
        debug(sql, obj);
 | 
			
		||||
        PreparedStatement ps = prepareStatement(sql);
 | 
			
		||||
        for (int i = 0; i < obj.length; i++) {
 | 
			
		||||
            ps.setObject(i + 1, obj[i]);
 | 
			
		||||
        }
 | 
			
		||||
        int result = ps.executeUpdate(sql);
 | 
			
		||||
        int result = ps.executeUpdate();
 | 
			
		||||
        ps.close();
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获得数据操作对象
 | 
			
		||||
     *
 | 
			
		||||
     * @return 操作对象
 | 
			
		||||
     * @throws SQLException
 | 
			
		||||
     *             SQL执行异常
 | 
			
		||||
     */
 | 
			
		||||
    public Statement getStatement() throws SQLException {
 | 
			
		||||
        return getConnection().createStatement();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获得数据操作对象(预处理)
 | 
			
		||||
     *
 | 
			
		||||
     * @param sql
 | 
			
		||||
     *            SQL语句
 | 
			
		||||
     * @return 操作对象
 | 
			
		||||
     * @throws SQLException
 | 
			
		||||
     *             SQL执行异常
 | 
			
		||||
     */
 | 
			
		||||
    public PreparedStatement prepareStatement(String sql) throws SQLException {
 | 
			
		||||
        return getConnection().prepareStatement(sql);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 发送警告
 | 
			
		||||
     *
 | 
			
		||||
@@ -158,26 +201,14 @@ public abstract class DataBaseCore {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获得数据操作对象
 | 
			
		||||
     *
 | 
			
		||||
     * @return 操作对象
 | 
			
		||||
     * @throws SQLException
 | 
			
		||||
     *             SQL执行异常
 | 
			
		||||
     */
 | 
			
		||||
    protected Statement getStatement() throws SQLException {
 | 
			
		||||
        return getConnection().createStatement();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获得数据操作对象(预处理)
 | 
			
		||||
     * SQL调试消息
 | 
			
		||||
     * 
 | 
			
		||||
     * @param sql
 | 
			
		||||
     *            SQL语句
 | 
			
		||||
     * @return 操作对象
 | 
			
		||||
     * @throws SQLException
 | 
			
		||||
     *             SQL执行异常
 | 
			
		||||
     * @param params
 | 
			
		||||
     *            参数
 | 
			
		||||
     */
 | 
			
		||||
    protected PreparedStatement prepareStatement(String sql) throws SQLException {
 | 
			
		||||
        return getConnection().prepareStatement(sql);
 | 
			
		||||
    private void debug(String sql, Object... params) {
 | 
			
		||||
        Log.d("[SQL] %s 参数: %s", sql, Arrays.toString(params));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user