论坛首页 Java企业应用论坛

mysql的jdbc驱动分析

浏览 39791 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-07-02  
gembler 写道

怀疑你官方文档都没看完,JDBC Connector有这么一个参数:useServerPrepStmts,而默认是false。


因为之前在公司用的是oracle,研究mysql的驱动是因为它比较简单,所以没有先读文档。
0 请登录后投票
   发表时间:2009-07-02  
annegu 写道

因为之前在公司用的是oracle,研究mysql的驱动是因为它比较简单,所以没有先读文档。


oracle的驱动相对来说比较简单一些, 尤其是 oci 方式的。 你反编译一下源代码, 看看, 其实就是prepared statements 就是调用了oracle的一个存储过程实现的。

包括, 2pc 失误, 字符转变, 等等 都是通过oracle的存储过程实现的。 研究起来相对mysql 来说要简单一些。 不过没源代码, 需要自己反编译一下。
0 请登录后投票
   发表时间:2009-07-02  
mikewang 写道
gembler 写道

同样怀疑你官方文档都没看完

Property Name: useServerPrepStmts
Definition: Use server-side prepared statements if the server supports them?
Default Value: false
Since Version: 3.1.0


Definition: Use server-side prepared statements if the server supports them?
这句话我看的很清楚呀。



你的反应,果然不出我所料

首先,现在是讨论jdbc connector,不是server。

如果硬是要讨论server,可以
server side的prepared statements是从mysql4.1开始实现的

LZ用4.1以下的几率甚低
而且目前mysql官方只提供>=4.1的版本下载
0 请登录后投票
   发表时间:2009-07-02  
gembler 写道

怀疑你官方文档都没看完,JDBC Connector有这么一个参数:useServerPrepStmts,而默认是false。


你好,能请教一下replication和loadbalace这两个驱动的具体做法是怎么样的呢?
能给我详细解释一下吗,大体上我也知道一些,但是还是希望能有懂的人详细解释一下,希望不要用google或者一句话就带过,因为这个用的确实比较少,所以希望能了解一下。
0 请登录后投票
   发表时间:2009-07-02  
annegu 写道
gembler 写道

怀疑你官方文档都没看完,JDBC Connector有这么一个参数:useServerPrepStmts,而默认是false。


因为之前在公司用的是oracle,研究mysql的驱动是因为它比较简单,所以没有先读文档。

修改你的结论吧
会误人子弟的
0 请登录后投票
   发表时间:2009-07-02  
gembler 写道
mikewang 写道
gembler 写道

同样怀疑你官方文档都没看完

Property Name: useServerPrepStmts
Definition: Use server-side prepared statements if the server supports them?
Default Value: false
Since Version: 3.1.0


Definition: Use server-side prepared statements if the server supports them?
这句话我看的很清楚呀。



你的反应,果然不出我所料

首先,现在是讨论jdbc connector,不是server。

如果硬是要讨论server,可以
server side的prepared statements是从mysql4.1开始实现的

LZ用4.1以下的几率甚低
而且目前mysql官方只提供>=4.1的版本下载


我就知道你会这么说, 所以,在前面的帖子中, 我仿佛强调的是需要仔细阅读jdbc的规范和厂家的文档。
你确实仔细阅读了mysql的文档, 但是, 这个问题,在jdbc规范中说的也很清楚, 是否支持预编译取决于server, jdbc驱动的prepared statements只是用于支持server的的预编译功能而已。
这个是两回事,同时我也可以找出prepared statements不支持server端预编译的例子。(本文就是一个绝好的例子)

所以, 还是要仔细阅读jdbc 的规范 和 厂商的说明。 (都要仔细阅读)
0 请登录后投票
   发表时间:2009-07-02  
mikewang说的是对的,我用的驱动是5.0.6的,预编译的功能是取决于server的。
0 请登录后投票
   发表时间:2009-07-02  
写得不错,开发还是挺规范的
0 请登录后投票
   发表时间:2009-07-02  
哎, 看来 我们做java的 对数据库真的不熟悉啊!

sql是什么 不就是 一门语言 那计算机不认识啊 那就是需要数据库搞定啊

那sql到底是编译语言还是解释语言或者都是或者都不是,或者类似java jit

呵呵 看数据库厂商怎么搞了

0 请登录后投票
   发表时间:2009-07-02  
不过这个问题 还是值得研究哦!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics