
JDBC
文章平均质量分 90
xieyu_zy
互联网攻城狮,DB方面的Java开发工作,多面手,做过传统行业开发,做过DBA,开发,技术管理,项目管理,产品管理,经过几年磨练,自认为算是高级泥水匠。技术上个人自认为擅长java相关核心技术,如JVM,JUC,JDBC,连接池,Java ByteCode,Java OOD设计,代码调优。擅长数据库应用技术Oracle及MySQL,擅长分布式存储架构分布式计算,善于常见问题诊断和系统调优。
展开
-
Spring事务对所有方法全局开启的潜在问题
Spring 事务管理器基于AOP切入方法来实现的,开发人员可以使用XML配置,也可以使用Annotation来标记具体的方法,可能有的开发人员为了简单省事,就讲AOP切入的方法定义成所有方法,那么写代码就简单了,这样做到底有没有问题呢?肯定有,有兴趣的开发者可以一起探讨下:应用于DB之间的通信次数增加了几次,1次?2次?3次?....增加事务操作后,通信次数自然会变多,通信次数变多...原创 2020-03-26 09:55:44 · 1737 阅读 · 0 评论 -
MySQL JDBC为什么都不开启PreparedStatement Cache
同样技术的文章我发现几年前写过一次,^_^:https://blog.youkuaiyun.com/xieyuooo/article/details/10732375当时写这篇文章更多偏重于内部的代码实现逻辑来写,可能很多朋友看得更多是云里雾里,不知道对自己有什么帮助,最近也有人在问我为什么我们写代码不开启PS Cache,其实从源码确实可以找到答案,不过我觉得用博客写源码分析可能更多是对我自己有帮助,对...原创 2019-08-20 22:47:56 · 9165 阅读 · 10 评论 -
常见Serialize技术探秘(ObjectXXStream、XML、JSON、JDBC byte编码、Protobuf)
今天是1024程序员节日,没错2的10次方,二进制的节日,那么我就突发奇想,写一篇关于网络传递二进制数据时的序列化和反序列化数据中各种常见的方案,其中不乏一些底层方案和一些开源界很流行的方案,它们在技术上的实现的初衷和背景有较大的区别,因此在设计的架构也会有很大的区别,最终在落地后的:解析速度、对系统的影响、传输数据的大小、可维护性及可阅读性等方面有着较大的区别。 文章分成3个部分:1...原创 2018-10-24 21:42:04 · 3265 阅读 · 4 评论 -
MySQL JDBC StreamResult通信原理浅析
好几年没写技术博客了,今天写一个小的技术点给大家分享,关于MySQL JDBC StreamResult的原理分享,难度不大,就当程序员的闲聊。如果使用MySQL JDBC读取过比较大的数据(例如超过1GB),应该清楚在读取的时候,很可能会Java堆内存溢出,我们的解决方案通常是使用useCursorFetch读取或Stream读取来处理。使用Stream读取的方式通常的操作方式是在执行SQL...原创 2018-10-17 17:02:56 · 15649 阅读 · 54 评论 -
MySQL JDBC 5.1.25的一个坑(应该算是BUG)
这是公司的一个重要项目中的真实案例(目前还未证实其它版本是否存在,不过刚看了最新版5.1 .26版本还是没有修复这个操作方式,不过用的小伙伴们要注意了哦):什么样的情况呢,当在代码中使用connection.close()方法的时候,神奇般的StackOverflow了!没错,这就是JDBC自己导致的死递归,堆栈输出的内容如下所示:这个堆栈信息可以: ConnectionImpl.realC原创 2013-10-30 14:16:33 · 8554 阅读 · 4 评论 -
MySQL JDBC的queryTimeout的一个坑
遇到一个MySQL JDBC的queryTimeout的坑,比较恶心,算是它的BUG,也可以不算,^_^,为啥这么说?看一下下面的解释:现象:用同一个Connection执行大批量SQL的时候,导致了OOM现象。细节现象描述:1、SQL是从某个存储设备上拿到的,不会直接占用大量的内存,每次只会取最多1千条数据过去,也会判定容量不超过多少M。2、每一批SQL执行会单独创建Statement对象,执行原创 2014-10-08 21:16:54 · 11821 阅读 · 20 评论 -
mysql jdbc处理0日期格式蛋疼问题-也算是BUG
最近在写一个数据库访问的中间平台时,使用MySQL JDBC处理一些日期数据,遇到点变态的问题,给大家乐一乐!首先来看看什么样的日期数据这么蛋疼呢?DATE 0000-00-00DATETIME 0000-00-00 00:00:00TIMESTAMP 0000-00-00 00:00:00TIME 25:21:22对于前3种情况,直接用JDB原创 2014-06-06 19:41:49 · 5047 阅读 · 8 评论 -
spring事务管理器的源码和理解
以前说了大多的原理,今天来说下spring的事务管理器的实现过程,顺带源码干货带上。其实这个文章唯一的就是带着看看代码,但是前提你要懂得动态代理以及字节码增强方面的知识(http://blog.youkuaiyun.com/xieyuooo/article/details/7624146),关于annotation在文章:http://blog.youkuaiyun.com/xieyuooo/article/deta原创 2012-12-10 16:53:51 · 9032 阅读 · 0 评论 -
MySQL JDBC PrepareStatement基本的两种模式&客户端空间占用的源码分析
关于预编译(PrepareStatement),对于所有的JDBC驱动程序来讲,有一个共同的功能,就是“防止SQL注入”,类似Oracle还有一种“软解析”的概念,它非常适合应用于OLTP类型的系统中。在JDBC常见的操作框架中,例如ibatis、jdbcTemplate这些框架对JDBC操作时,默认会走预编译(jdbcTemplate如果没有传递参数,则会走createStatement),这貌原创 2013-08-31 14:29:23 · 8053 阅读 · 6 评论