mysql关闭prepareStatement功能

转载 2015年11月19日 16:03:37
环境为 
mysql 5.1.39 
mysql-connector-j  5.1.11 
测试代码 
Java代码  收藏代码
  1. public static void main(String[] args) throws Exception {  
  2. Connection conn = getConnection();  
  3.   
  4. PreparedStatement ps = conn  
  5. .prepareStatement("select * from test where name=?");  
  6. ps.setInt(11);  
  7. ps.execute();  
  8.   
  9. Statement stmt = conn.createStatement();  
  10.   
  11. stmt.execute("select * from test where name=1");  
  12.   
  13. conn.commit();  
  14. conn.close();  
  15.   
  16. }  
  17.   
  18. private static Connection getConnection() throws Exception {  
  19. Class.forName("com.mysql.jdbc.Driver");  
  20. Connection conn = DriverManager.getConnection(  
  21. "jdbc:mysql://localhost:3306/db_test?useServerPrepStmts=false",  
  22. "db_test""db_test");  
  23. conn.setAutoCommit(false);  
  24. return conn;  
  25. }  

在mysql驱动url中如果设置useServerPrepStmts=false,那么上面两条语句执行时,向服务器发送的数据包一样(用wireshark抓包工具加断点看到)。 
如果设置useServerPrepStmts=true,那么执行conn.prepareStatement("select * from test where name=?");语句时,会向服务器发送命令,告知这条语句,执行ps.execute();时则只发送参数和语句编号。此时在服务器端 
mysql> show global status like 'Com_stmt%' ; 
可以看到 Com_stmt_prepare数量增加。

JAVA连接MYSQL,使用PreparedStatement 写查询,修改,添加,删除,语句

http://blog.csdn.net/blacksource/article/details/4380358添加:PreparedStatement ps=conn.prepareStatemen...

MySQL JDBC PrepareStatement基本的两种模式&客户端空间占用的源码分析

关于预编译(PrepareStatement),对于所有的JDBC驱动程序来讲,有一个共同的功能,就是“防止SQL注入”,类似Oracle还有一种“软解析”的概念,它非常适合应用于OLTP类型的系统中...

mysql5.1及以上版本动态关闭和开启慢日志功能

在mysql5.1版本以前,慢日志(slow.log 根据参数的设定记录慢sql)和查询日志(general.log 这个会记录所有sql)都只能通过修改参数文件,并重启以使修改生效。在mysql5....

JDBC(用PrepareStatement实现)

  • 2009年01月15日 16:01
  • 4KB
  • 下载

prepareStatement和Statement的区别

  • 2013年09月23日 00:07
  • 30KB
  • 下载

JDBC连接(Statement和PrepareStatement)

1.JDBC连接的连接步骤(Statement和PrepareStatement) (1)注册驱动 (只做一次) (2)建立连接(Connection)  (3)创建执行SQL的语句(Statemen...

浅谈 JDBC 中 CreateStatement 和 PrepareStatement 的区别与优劣。

本人的几点浅见,各位大大不喜勿喷。 说是CreateStatement和PrepareStatement的区别,但其实说的就是Statement和PrepareStatement的区别,相信大家在网上...

preparestatement详细介绍

传送给数据库的 SQL 语句通过一个包含两个步骤的过程来返回结果。首先准备它们,然后处理它们。借助 Statement 对象,这两个阶段对应用程序而言变成一个阶段。PreparedStatement ...

PrepareStatement与Statement的区别

1、创建时的区别:      Statement stm = con.createStatement();      PrepareStatement pstm = con.prepareStat...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql关闭prepareStatement功能
举报原因:
原因补充:

(最多只允许输入30个字)