mysql存储过程返回查询结果集

摘要:
--数据库--˃mysqlmysql-connector-java5.1.38c3p0c3p00.9.1.2
SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS `testproc`;

CREATE TABLE `testproc` (

`id` int(4) NOT NULL,

`name` varchar(100) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

1.2 插入数据

INSERT INTO `testproc` VALUES ('1', '第一条记录');

INSERT INTO `testproc` VALUES ('2', 'efgh');

INSERT INTO `testproc` VALUES ('3', 'ijklmn');

INSERT INTO `testproc` VALUES ('4', 'zxvb');

INSERT INTO `testproc` VALUES ('5', 'uiop');

INSERT INTO `testproc` VALUES ('6', '222');

INSERT INTO `testproc` VALUES ('7', '8888');

INSERT INTO `testproc` VALUES ('9', '第9条记录');

INSERT INTO `testproc` VALUES ('10', '第10条记录');

INSERT INTO `testproc` VALUES ('11', '第11条记录');

INSERT INTO `testproc` VALUES ('12', '第12条记录');

1.3 创建存储过程

CREATE PROCEDURE test_proc_multi_select()

BEGIN

select * from testproc;

select * from testproc where id=1;

END;

1.4 删除存储过程
DROP PROCEDURE test_proc_multi_select;

二、JAVA相关代码

package action;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.CallableStatement;

/**
 * 存储过程
 * @author Pei
 *
 */
public class CunChu {

	public static final String DBDRIVER = "com.mysql.jdbc.Driver";

	public static final String DBURL = "jdbc:mysql://127.0.0.1:3306/test1";

	public static final String DBUSER = "root";

	public static final String DBPASS = "123456";

	public static void main(String[] args) {
		Connection con = null;
		CallableStatement cs;
		try {
			Class.forName(DBDRIVER);
			con = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
			String sql = "{call test_proc_multi_select()}";
			cs = (CallableStatement) con.prepareCall(sql);
			boolean hadResults = cs.execute();
			int i = 0;
			while (hadResults) {
				System.out.println("result No:----" + (++i));
				ResultSet rs = cs.getResultSet();
				while (rs != null && rs.next()) {
					int id1 = rs.getInt(1);
					String name1 = rs.getString(2);
					System.out.println(id1 + ":" + name1);
				}
				hadResults = cs.getMoreResults(); // 检查是否存在更多结果集
			}
		} catch (ClassNotFoundException e) {
		  e.printStackTrace();
		} catch (SQLException e) {
		  e.printStackTrace();
		} finally {
		try {
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		}

	}
}

pom.xml文件

<dependencies>
		  <dependency>
		    <groupId>javax.websocket</groupId>
		    <artifactId>javax.websocket-api</artifactId>
		    <version>1.1</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId> 
		   <artifactId>javax.servlet-api</artifactId> 
		   <version>3.0.1</version> 
		   <scope>provided</scope>
		</dependency>
		
		<!--  数据库-->
		<dependency>
		  <groupId>mysql</groupId>
		  <artifactId>mysql-connector-java</artifactId>
		  <version>5.1.38</version>
		</dependency>
		<dependency>
		  <groupId>c3p0</groupId>
		  <artifactId>c3p0</artifactId>
		  <version>0.9.1.2</version>
		</dependency>
  </dependencies>

免责声明:文章转载自《mysql存储过程返回查询结果集》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇unity用刚体做玩家移动和玩家看向鼠标点(转帖)几种PCB设计工具的比较(PCB)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Mysql的索引

什么是索引: 数据库中的索引与书籍中的目录类似,在一本书中,利用目录可以快速查找所需要的信息,无需阅读整本书.在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据.书中的目录是一个词语列表,其中注明了包含各个词的页码,在数据库中,由于数据存储在数据表中,因此索引是创建在数据表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储...

【mysql】连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案

1. 增加 MySQL 的 wait_timeout 属性的值。  修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status. wait_timeout =86400  将这2个参数设置为24小时(60*60*24=604800)即可。 ...

PgSQL基础之 pgsql与mysql的简单区别

1、支持的booloan类型的值   mysql并不支持boolean类型,即便当我们创建了boolean的字段属性之后,mysql会自动将其转化为tinyint(1)类型。当插入“true”的时候,其值自动转化为1。当插入"false"的时候,其值自动转化为0。使用select进行取值的时候,我们搜索出来的也是0和1。而pgsql是支持boolean的,...

MySQL同步故障:" Slave_SQL_Running:No" 两种解决办法

进入slave服务器,运行: mysql> show slave statusG Relay_Log_File: localhost-relay-bin.000535 Relay_Log_Pos: 21795072 Relay_Master_Log_File: localhost-bin.000094 Slave_IO_Running:...

Mysql—二进制日志(binlog)

什么是二进制日志(binlog) binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、DELETE、UPDATE…)的二进制日志。多说一句,如果update操作没有造成数据变化,也是会记入binlog。 binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改,但你可...

mysql proxysql的简单部署读写分离

环境需求(centos) proxysql-server(1)-- 地址:proxysql-service mysql-master-server(1)--- 地址:mysql1-service mysql-slave-server(2)--- 地址:mysql2-service 和 mysql3-service 提前做好三台mysql的主从复制 mysq...