一杯茶,带你了解MySQL连接器

📒博客首页:*铁甲小宝同学* 📒

🌞文章目的:了解MySQL连接器🌞

🙏博主也在学习阶段,如若发现问题,请告知,非常感谢🙏

💗同时也非常感谢各位小伙伴们的支持💗

🌈每日一语:出发,永远是最有意义的事,去做就是了。 🌈

🍒本文参考了MySQL 5.7 参考手册🍒


文章目录

  • 一杯茶,带你了解MySQL连接器
  • MySQL连接器的介绍
  • MySQL连接器的作用


MySQL连接器的介绍

首先我们需要先知道MySQL连接器是什么?

mysql 的 连接器 是msyql server层的第一个模块。

我们还需要知道他的作用是什么?

负责跟客户端建立连接、获取权限、维持和管理连接。

具体步骤:

  • TCP三次握手建立连接
  • 连接器开始认证身份

相信一般在学过Java的小伙伴都应该知道mysql-connector-java—是Java操作MySQL的一种MySQL连接器

通过它我们能编写Java的代码来进行对MySQL的操作,以便一些项目的使用!

mysql 连接sleep什么意思_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后面跟的是输出参数。

我们一般使用JavaMySQL连接器来存储是是来对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连接器的介绍和作用,最后也希望对大家有帮助!那我们下期见!