锁定老帖子 主题:mysql的jdbc驱动分析
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-02
gembler 写道 怀疑你官方文档都没看完,JDBC Connector有这么一个参数:useServerPrepStmts,而默认是false。 因为之前在公司用的是oracle,研究mysql的驱动是因为它比较简单,所以没有先读文档。 |
|
返回顶楼 | |
发表时间:2009-07-02
annegu 写道 因为之前在公司用的是oracle,研究mysql的驱动是因为它比较简单,所以没有先读文档。 oracle的驱动相对来说比较简单一些, 尤其是 oci 方式的。 你反编译一下源代码, 看看, 其实就是prepared statements 就是调用了oracle的一个存储过程实现的。 包括, 2pc 失误, 字符转变, 等等 都是通过oracle的存储过程实现的。 研究起来相对mysql 来说要简单一些。 不过没源代码, 需要自己反编译一下。 |
|
返回顶楼 | |
发表时间: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的版本下载 |
|
返回顶楼 | |
发表时间:2009-07-02
gembler 写道 怀疑你官方文档都没看完,JDBC Connector有这么一个参数:useServerPrepStmts,而默认是false。 你好,能请教一下replication和loadbalace这两个驱动的具体做法是怎么样的呢? 能给我详细解释一下吗,大体上我也知道一些,但是还是希望能有懂的人详细解释一下,希望不要用google或者一句话就带过,因为这个用的确实比较少,所以希望能了解一下。 |
|
返回顶楼 | |
发表时间:2009-07-02
annegu 写道 gembler 写道 怀疑你官方文档都没看完,JDBC Connector有这么一个参数:useServerPrepStmts,而默认是false。 因为之前在公司用的是oracle,研究mysql的驱动是因为它比较简单,所以没有先读文档。 修改你的结论吧 会误人子弟的 |
|
返回顶楼 | |
发表时间: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 的规范 和 厂商的说明。 (都要仔细阅读) |
|
返回顶楼 | |
发表时间:2009-07-02
mikewang说的是对的,我用的驱动是5.0.6的,预编译的功能是取决于server的。
|
|
返回顶楼 | |
发表时间:2009-07-02
写得不错,开发还是挺规范的
|
|
返回顶楼 | |
发表时间:2009-07-02
哎, 看来 我们做java的 对数据库真的不熟悉啊!
sql是什么 不就是 一门语言 那计算机不认识啊 那就是需要数据库搞定啊 那sql到底是编译语言还是解释语言或者都是或者都不是,或者类似java jit 呵呵 看数据库厂商怎么搞了 |
|
返回顶楼 | |
发表时间:2009-07-02
不过这个问题 还是值得研究哦!
|
|
返回顶楼 | |