一杯茶,带你了解MySQL连接器
📒博客首页:*铁甲小宝同学* 📒
🌞文章目的:
了解MySQL连接器
🌞🙏博主也在学习阶段,如若发现问题,请告知,非常感谢🙏
💗
同时也非常感谢各位小伙伴们的支持
💗🌈每日一语:出发,永远是最有意义的事,去做就是了。 🌈
🍒本文参考了MySQL 5.7 参考手册🍒
文章目录
- 一杯茶,带你了解MySQL连接器
- MySQL连接器的介绍
- MySQL连接器的作用
MySQL连接器的介绍
首先我们需要先知道MySQL
连接器是什么?
mysql 的 连接器 是msyql server层的第一个模块。
我们还需要知道他的作用是什么?
负责跟客户端建立连接、获取权限、维持和管理连接。
具体步骤:
- TCP三次握手建立连接
- 连接器开始认证身份
相信一般在学过Java
的小伙伴都应该知道mysql-connector-java
—是Java
操作MySQL
的一种MySQL连接器
。
通过它我们能编写Java
的代码来进行对MySQL
的操作,以便一些项目的使用!
MySQL连接器的作用
因为一些时间原因我就给大家介绍MySQL连接器 - 使用JDBC的CallableStatements来执行存储过程
。
首先创建存储过程demoSp:
CREATE PROCEDURE demoSp(IN inputParam VARCHAR(255), INOUT inOutParam INT)
BEGIN
DECLARE z INT;
SET z = inOutParam + 1;
SET inOutParam = z;
SELECT inputParam;
SELECT CONCAT('zyxw', inputParam);
END
通过上面这段代码我们可以这样理解:IN
后跟输入参数,INOUT后面跟的是输出参数。
我们一般使用Java
的MySQL连接器
来存储是是来对demoSp
的调用,那具体是怎么调用的呢?
1.使用 Connection.prepareCall()
来准备调用语句。如下:
CallableStatement cStmt = conn.prepareCall("{call demoSp(?, ?)}");
//下标是从1开始,第一个参数是输入参数
//这句是给第一个参数赋初值
cStmt.setString(1, "abcdefg");
2、注册输出参数(如果有)
输出参数是在创建存储过程时,用OUT或INOUT修饰过的变量.
// 以下两种方式均可
// 1、注册输出参数,第二个参数是用INOUT修饰过
cStmt.registerOutParameter(2, Types.INTEGER);
// 2、也可以使用这种方式进行注册参数,直接用参数变量名,而不是使用索引。
cStmt.registerOutParameter("inOutParam", Types.INTEGER);
3、注册输入参数
通过索引,设置参数
cStmt.setString(1, "abcdefg");
// 也可以使用名字来设置一个参数
cStmt.setString("inputParam", "abcdefg");
// 使用索引设置'in/out'参数
cStmt.setInt(2, 1);
// 也可以使用名字来设置'in/out'参数
cStmt.setInt("inOutParam", 1);
4、执行 CallableStatement
,检索任何结果集或输出参数。
尽管 CallableStatement
支持调用任意的执行方法
( executeUpdate() , executeQuery() 或 execute() )
,最灵活的方法是 execute()
,
因为你不需要提前知道存储过程是否返回结果集。
......
boolean hadResults = cStmt.execute();
while (hadResults) {
ResultSet rs = cStmt.getResultSet();
// 处理结果集
. ...
hadResults = cStmt.getMoreResults();
}
// 检索输出参数
// Connector/J支持基本索引和基于名字来检索
int outputValue = cStmt.getInt(2); // 基于索引
outputValue = cStmt.getInt("inOutParam"); // 基于名字
......
以上就是带大家了解了MySQL连接器的介绍和作用,最后也希望对大家有帮助!那我们下期见!