p6spy 怎么不打印未编译的sql

p6spy 怎么不打印未编译的sql,第1张

p6spy

怎么不打印未编译的sql

请把

spy.properties

配置文件

里的

deregisterdrivers=false

改为

deregisterdrivers=true

,重新运行即可。

这是因为有些应用系统中会先于

P6Spy

加载了真正的数据库的驱动程序,导致

P6Spy

无法监控到,设置

deregisterdrivers

true

,是显式地把真正的数据库的驱动程序进行反注册掉,而采用

P6Spy

的驱动程序。

传参的方式可以帮助防止 SQL 注入攻击,但并不能完全防止。在 C# 中,可以使用参数化查询或存储过程来防止 SQL 注入攻击。

使用参数化查询可以将用户输入的数据与 SQL 查询语句分离,从而避免注入攻击。在使用参数化查询时,应该确保使用正确的参数类型,并对所有用户输入的数据进行验证和过滤。

使用存储过程可以将 SQL 代码封装在数据库中,从而避免直接向数据库发送 SQL 代码。在使用存储过程时,应该确保只给用户提供访问存储过程的权限,并对所有输入参数进行验证和过滤。

虽然使用这些方法可以减轻 SQL 注入攻击的影响,但并不能完全防止攻击,因此开发者还需要保持对潜在漏洞的警惕,并采取其他措施,如审计日志、限制数据库用户权限等。

楼主的 Java 程序, 是 B/S 的 还是 C/S 的

B/S 的, 尝试在 执行 ibatis 的 插入之前 System.out 一下 那10个对象。

或者 写到 日志文件里面。

如果类 写了比较的方法的话,就比较一下 第1个 和 第2个

确定一下, 是否是 插入不同的数据。

C/S 的,设置一下 断点, 到时候,单步跟踪进去。

如果以上情况都不见效, 那么尝试使用 P6Spy

P6Spy 是一个可以用来在应用程序中拦截和修改数据 *** 作语句的开源框架.

通过P6Spy 我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。

弄hibernate时,想显示sql语句,可以设置show_sql为true来达到这个目的,但是参数值全PreparedStatement一样,用?来代替的。

用p6spy可以达到显示的那些参数原值的目的,但可读性差。可以利用SQL Profiler来处理这个事情。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6830238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存