Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

《MyBatis从入门到精通》(刘增辉)一书中,书签161页第3个存储过程创建是否有误? #73

Open
dear-Alice-moon opened this issue May 20, 2019 · 3 comments

Comments

@dear-Alice-moon
Copy link

在书本第161页中,创建第3个存储过程的部分语句如下:
CREATE PROCEDURE insert_user_and_roles (
OUT userId BIGINT,
OUT createTime DATETIME,
IN userName VARCHAR(50),
IN userPassword VARCHAR(50),
IN userEmail VARCHAR(50),
IN userInfo TEXT,
IN headImg BLOB,
IN roleIds VARCHAR(200)
)

其中, 有一个OUT参数名为: userId 。

在书本第166页, UserMapper.xml文件中对应创建的 标签内容如下:

`

<insert id="insertUserAndRoles" statementType="CALLABLE">
	{call insert_user_and_roles(
		#{user.id, mode=OUT, jdbcType=BIGINT},
		#{user.userName, mode=IN},
		#{user.userPassword, mode=IN},
		#{user.userEmail, mode=IN},
		#{user.userInfo, mode=IN},
		#{user.headImg, mode=IN, jdbcType=BLOB},
		#{user.createTime, mode=OUT, jdbcType=TIMESTAMP},
		#{roleIds, mode=IN}
	)}
</insert>

`

其中一个OUT参数为 user.id 。

存储过程中的OUT参数为:userId,xml文件中的OUT参数为id。 这里,是否有错误呢?

@dear-Alice-moon
Copy link
Author

根据PDF书籍上的第3个存储过程,通过代码调试,发现没有问题。

在这里,需要注意的是:Mysql存储过程中,输入、输出参数的位置顺序需要与 XML文件中输入、输出参数的位置顺序一致,否则会报错。

在最后,感谢刘增辉老师的传道受业解惑,感谢。

@abel533
Copy link
Contributor

abel533 commented Jun 16, 2019

PDF 是什么情况?盗版?

@dear-Alice-moon
Copy link
Author

PDF 是什么情况?盗版?

是的,我下载的是2017年版本的,在网上下的,盗版的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants