|
@@ -4,6 +4,7 @@ import java.sql.Statement;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Properties;
|
|
|
+import java.util.regex.Matcher;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
@@ -16,12 +17,16 @@ import org.apache.ibatis.plugin.Invocation;
|
|
|
import org.apache.ibatis.plugin.Plugin;
|
|
|
import org.apache.ibatis.plugin.Signature;
|
|
|
import org.apache.ibatis.session.ResultHandler;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
import com.lemon.lifecenter.dto.PrivateLogDTO;
|
|
|
import com.lemon.lifecenter.service.PrivateLogService;
|
|
|
+
|
|
|
+import ch.qos.logback.classic.Logger;
|
|
|
+
|
|
|
import java.sql.Connection;
|
|
|
import java.sql.DriverManager;
|
|
|
import java.sql.SQLException;
|
|
@@ -43,6 +48,8 @@ import cubrid.jdbc.driver.*;
|
|
|
@Signature(type = StatementHandler.class, method = "query", args = { Statement.class, ResultHandler.class }) })
|
|
|
public class LifeCenterQueryLog implements Interceptor {
|
|
|
|
|
|
+ private final Logger logger = (Logger) LoggerFactory.getLogger(this.getClass());
|
|
|
+
|
|
|
private Connection con;
|
|
|
private Statement stmt;
|
|
|
|
|
@@ -180,7 +187,8 @@ public class LifeCenterQueryLog implements Interceptor {
|
|
|
}
|
|
|
|
|
|
if (value instanceof String) {
|
|
|
- sql = sql.replaceFirst("\\?", "'" + value + "'");
|
|
|
+// sql = sql.replaceFirst("\\?", "'" + value + "'");
|
|
|
+ sql = sql.replaceFirst("\\?", "'"+Matcher.quoteReplacement(value.toString())+"'");
|
|
|
} else {
|
|
|
sql = sql.replaceFirst("\\?", value.toString());
|
|
|
}
|
|
@@ -196,8 +204,10 @@ public class LifeCenterQueryLog implements Interceptor {
|
|
|
Field field = paramClass.getDeclaredField(propValue);
|
|
|
field.setAccessible(true);
|
|
|
Class<?> javaType = mapping.getJavaType();
|
|
|
+
|
|
|
if (String.class == javaType) {
|
|
|
- sql = sql.replaceFirst("\\?", "'" + field.get(param) + "'");
|
|
|
+ String str = field.get(param) == null ? "" : field.get(param).toString();
|
|
|
+ sql = sql.replaceFirst("\\?", "'"+Matcher.quoteReplacement(str)+"'");
|
|
|
} else {
|
|
|
sql = sql.replaceFirst("\\?", field.get(param).toString());
|
|
|
}
|