mirror of
https://e.coding.net/circlecloud/YumCore.git
synced 2024-11-21 01:38:51 +00:00
fix: 修复SQL预处理语句执行错误 调整命令解析提示
Signed-off-by: 502647092 <admin@yumc.pw>
This commit is contained in:
parent
e65d38445d
commit
2766713ff9
@ -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));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user