Java 什么样的陈述可以';在服务器端没有准备好吗?

Java 什么样的陈述可以';在服务器端没有准备好吗?,java,mysql,jdbc,relational-database,database-administration,Java,Mysql,Jdbc,Relational Database,Database Administration,在MySQL中,如果我使用useServerPrepsmts=true,那么驱动程序将尝试在服务器上准备一条语句,如果它认为这是可能的。如果服务器无法准备语句(并非所有语句都可以在服务器端准备),则会返回到“客户机准备的语句” 我有两个问题: 什么样的语句不能在服务器端准备 如果服务器无法准备语句,为什么驱动程序有时会认为可以在服务器端准备语句,并向服务器发送COM\u STMT\u PREPARE(请参阅)?这是否意味着有时语句的可准备性确实取决于服务器端的某个谓词是否为真,这就是为什么驱动

在MySQL中,如果我使用
useServerPrepsmts=true
,那么驱动程序将尝试在服务器上准备一条语句,如果它认为这是可能的。如果服务器无法准备语句(并非所有语句都可以在服务器端准备),则会返回到“客户机准备的语句”

我有两个问题:

  • 什么样的语句不能在服务器端准备
  • 如果服务器无法准备语句,为什么驱动程序有时会认为可以在服务器端准备语句,并向服务器发送
    COM\u STMT\u PREPARE
    (请参阅)?这是否意味着有时语句的
    可准备性
    确实取决于服务器端的某个谓词是否为真,这就是为什么驱动程序本身无法做出正确的决定
这部分回答了您的问题: