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"); // 基于名字 ......