当前位置: 首页 > news >正文

p6spy 显示完整可执行的SQL

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

之前项目使用 mybtis 来做ORM ,,,它有自带的 sql输出,或者第三方插件都很好的输出 显示执行的SQL和结果。 甚至可以 使用 mybtis的 拦截器进行自定义格式化SQL的输出。

目前这个项目 使用 hibernate3 来开发。项目也比较老。。。 控制台 显示出来的SQL语句又丑又长, 而且 查询的参数是 带 ? 号的,真是难看。。。 刚开始想使用 druid 连接池 来显示SQL 出来控制的,可是发现 druid 不兼容 hibernate3 ..兼容性太差了, 要不就是没有 达到效果。。。

虽然 hibernate 可以 格式化SQL,可是还是不够好看,下面是 例子比较的:

配置 显示格式化的SQL 
<prop key="hibernate.show_sql">
					true
				</prop>
				<prop key="hibernate.format_sql">true</prop> 


下面是控制台的比较: 看得出来, p6spy 更好,还可以用在 mybtis 

Hibernate: 
    select
        smslog0_.id as id110_,
        smslog0_.content as content110_,
        smslog0_.create_time as create3_110_,
        smslog0_.phone as phone110_,
        smslog0_.return_msg as return5_110_,
        smslog0_.send_time as send6_110_,
        smslog0_.sms_no as sms7_110_,
        smslog0_.status as status110_ 
    from
        sms_log smslog0_ 
    where
        smslog0_.status=? 
    order by
        smslog0_.id asc
2017-09-19 16:30:30|0|commit|connection 26||
2017-09-19 16:30:30|43|statement|connection 27|select smslog0_.id as id110_, smslog0_.content as content110_, smslog0_.create_time as create3_110_, smslog0_.phone as phone110_, smslog0_.return_msg as return5_110_, smslog0_.send_time as send6_110_, smslog0_.sms_no as sms7_110_, smslog0_.status as status110_ from sms_log smslog0_ where smslog0_.status=? order by smslog0_.id asc
select smslog0_.id as id110_,
	smslog0_.content as content110_,
	smslog0_.create_time as create3_110_,
	smslog0_.phone as phone110_,
	smslog0_.return_msg as return5_110_,
	smslog0_.send_time as send6_110_,
	smslog0_.sms_no as sms7_110_,
	smslog0_.status as status110_
from
	sms_log smslog0_
where
	smslog0_.status=0
order by
	smslog0_.id asc


我就换成了 p6spy 试试,按照网上的百度出来的教程,,,很快就集成进行了,经过测试 兼容 hibernate3 。没有问题啊。。。而且可以自定义格式化SQL 。等等其他功能也有。 挺方便好用的。。。 只是 集成的时候,要把 spy.properties 放在 classes 的 根目录下面,也就是 resource 里面,或者是 src下面,不要随便乱丢,否则 找不到的,就启动报错了。。。 还有就是 配置路径要写对了。 基本 集成进来无压力没难度,,,对应我们只是用来查看SQL 来说够用了,其他可以不用管先

#jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.driverClassName=com.p6spy.engine.spy.P6SpyDriver
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql=false
hibernate.hbm2ddl.auto=none
#jdbc.url=jdbc\:mysql\://localhost\:3306/rpdp2p?useUnicode\=true&characterEncoding\=UTF-8
jdbc.url=jdbc:p6spy:mysql://localhost:3306/rpdp2p?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456
jdbc.initialPoolSize=10
jdbc.minPoolSize=10
jdbc.maxPoolSize=100
jdbc.maxIdleTime=20
jdbc.acquireIncrement=20


bug

我用了一段时间之后,发现,如果是查询语言都可以 记录下来,插入语句也可以, 但是如果是 更新SQL就没有显示出来,也是郁闷了,不知道是本来就这样还是哪里没有配置好。

转载于:https://my.oschina.net/u/2419285/blog/1539922

相关文章:

  • Django 模板之组件、静态文件导入
  • 购物车程序
  • 【独立开发】从点子到创收
  • web项目中使用流程引擎
  • RESTful实践(具体应用)思考
  • 科幻作家眼中的人工智能:情感和自我意识不可或缺
  • 【前端学习】-粗谈选择器
  • powermock单元测试
  • 9月20日学习内容整理:封装,私有属性方法,用装饰器描述的方法
  • 车联网上云最佳实践(三)
  • Codeforces Round #435 (Div. 2)
  • 机器学习概述
  • 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox
  • 从重复到重用
  • TPYBoard读取芯片上的温度传感器
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【RocksDB】TransactionDB源码分析
  • css选择器
  • ES10 特性的完整指南
  • github从入门到放弃(1)
  • Java Agent 学习笔记
  • MYSQL 的 IF 函数
  • MySQL的数据类型
  • spring学习第二天
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 看域名解析域名安全对SEO的影响
  • 驱动程序原理
  • 算法-插入排序
  • 小李飞刀:SQL题目刷起来!
  • 用mpvue开发微信小程序
  • 用Visual Studio开发以太坊智能合约
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • #Spring-boot高级
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2)(2.10) LTM telemetry
  • (4.10~4.16)
  • (9)目标检测_SSD的原理
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (一) storm的集群安装与配置
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)关于多人操作数据的处理策略
  • .net framework profiles /.net framework 配置
  • .NET 解决重复提交问题
  • .net/c# memcached 获取所有缓存键(keys)
  • .Net程序帮助文档制作
  • .NET简谈设计模式之(单件模式)
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET使用存储过程实现对数据库的增删改查
  • .net网站发布-允许更新此预编译站点
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @Autowired @Resource @Qualifier的区别
  • @Import注解详解