mysql - MYSQL(通过连接器/J)是否支持命名参数?

标签 mysql connector-j

我正在阅读 MYSQL refman-5.6.pdf。我很困惑。

mysql_stmt_bind 示例代码仅显示 ?语法。同时,Connector/J 示例具有以下内容:

//
// Alternatively, set a parameter using
// the parameter name
//
cStmt.setString("inputParameter", "abcdefg");

如果命名参数不是Connector/J的扩展函数,MYSQL命名参数的正确语法是什么?

最佳答案

http://dev.mysql.com/doc/refman/5.6/en/connector-j-usagenotes-statements-callable.html#connector-j-examples-callablestatement有你所指的例子,它说:

CallableStatement also supports setting parameters by name:

所以这是特定于用于调用存储过程的CallableStatement,并且特定于MySQL的JDBC实现。这不是 JDBC 规范的标准。

此扩展仅适用于 CallableStatement,不适用于 PreparedStatement


回复你的评论:

是的,没错,MySQL 不支持命名参数,只支持位置参数。

像 Connector/J CallableStatement 和 PHP 的 PDO 库这样的客户端接口(interface)实际上必须做一些额外的工作来模拟命名参数。

关于mysql - MYSQL(通过连接器/J)是否支持命名参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19721608/

相关文章:

php - MAMP 和 PHPMyAdmin : #1045 - Access denied for user 'root' @'localhost' (using password: YES)

java - 如何在 Java 中克隆 MySQL 数据库

java - 使用 getGeneratedKeys 在带有 Connector/J 的 MySQL 中批量插入

java - 禁用 JDBC 连接上的 keystore

javascript - 谷歌地图 API v3。如何根据日期和时间隐藏 map 上的标记?

mysql - 明显不工作

jdbc - 在 Java EE Web 应用程序中缓存 InitialContext 和 DataSource

java - 使用 MySQL Connector/J 8.0 在 MySQL 中存储和检索没有任何时区信息的日期

MySQL - 连接两个表,表1中的不同列与表2中的同一列

mysql - 使用桥接表进行一对多