Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在变量值内的sql语句中转义单引号?_Java_Sql_Logging_Log4j_Escaping - Fatal编程技术网

Java 如何在变量值内的sql语句中转义单引号?

Java 如何在变量值内的sql语句中转义单引号?,java,sql,logging,log4j,escaping,Java,Sql,Logging,Log4j,Escaping,对于log4j,我有一个非常简单的sql语句: log4j.appender.DB.sql=INSERT INTO [LOG].[dbo].[LOGS] VALUES('%m') %m是一个包含记录器消息的变量。有时此消息中也会包含”。例如:用户“Admin”删除的对象C333421(粗略示例) 如何转义?使用两个单引号转义单引号。比如说 用户“管理员”删除了对象C333421 您需要更改java代码中检索消息的字符串 您可以为此使用replaceAll message=message.rep

对于log4j,我有一个非常简单的sql语句:

log4j.appender.DB.sql=INSERT INTO [LOG].[dbo].[LOGS] VALUES('%m')
%m
是一个包含记录器消息的变量。有时此消息中也会包含
。例如:
用户“Admin”删除的对象C333421
(粗略示例)


如何转义?

使用两个单引号转义单引号。比如说

用户“管理员”删除了对象C333421

您需要更改java代码中检索消息的字符串

您可以为此使用
replaceAll

message=message.replaceAll(“,”)


或者您可以在
sql
语句中使用
REPLACE(“%m”、“m”、“code”)
,这是log4j-我无法更改检索日志消息的模块。因此变量%m-将按原样出现。我的意思是,它将包含的字符串中可能包含
。因此,我无法对java代码进行更改,只能对sql语句进行一些操作:(您可以尝试使用
REPLACE('%m','','')
刚刚尝试过。这不起作用。下面是%m携带的行的示例:
操作由用户“管理员”执行。用户URL:'app://reflection/c3333“
我看到除这些行之外的所有其他行都记录到了数据库中。我在基于并行文件的日志中看到了这些行。jboss服务器日志也抱怨sql sta失败在这些行上的陈述:(刚刚更新了答案,请尝试一下。如果它不起作用,那么我就没有想法了:)