dba发邮件说:
[quote]如果是从java中连mysql,使用PrepareStatement的话,默认情况下真正发给服务器端之前已经把?替换了
也就是跟普通的Statement一样
在5.0开始虽然有了真正的PrepareStatement但是开启的方式令人匪夷所思
网上虽然有资料说设置useServerPrepStmts=true 可以开启
但事实上这是无效的
真正的开启方式是useCursorFetch=true
比如:
jdbc:mysql://127.0.0.1:3306/test?useCursorFetch=true [/quote]
以上是本人抓包和阅读mysql驱动得出的结论,并且通过抓包和查看官方文档证实了
[/quote]
不过文档里http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html确实是说要useServerPrepStmts=true的
搞不懂。
不过,我想既然人家dba抓包抓到的应该不会有错了。
官方文档也不会随便这么说说的。
以后如果要PrepareStatement的时候,两个都加上。一个是服务器上的,一个是从客户端发过去的。
[quote]如果是从java中连mysql,使用PrepareStatement的话,默认情况下真正发给服务器端之前已经把?替换了
也就是跟普通的Statement一样
在5.0开始虽然有了真正的PrepareStatement但是开启的方式令人匪夷所思
网上虽然有资料说设置useServerPrepStmts=true 可以开启
但事实上这是无效的
真正的开启方式是useCursorFetch=true
比如:
jdbc:mysql://127.0.0.1:3306/test?useCursorFetch=true [/quote]
以上是本人抓包和阅读mysql驱动得出的结论,并且通过抓包和查看官方文档证实了
[/quote]
不过文档里http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html确实是说要useServerPrepStmts=true的
搞不懂。
不过,我想既然人家dba抓包抓到的应该不会有错了。
官方文档也不会随便这么说说的。
以后如果要PrepareStatement的时候,两个都加上。一个是服务器上的,一个是从客户端发过去的。