`
zds420
  • 浏览: 203687 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

JAVA操作存储过程2

    博客分类:
  • JDBC
 
阅读更多
package com.saas.jdbc;

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

public class TestProcedureDemo02 {
	public static String _URL="jdbc:mysql://127.0.0.1:3306/shopping_thpad_com?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true";
	
	public static String _LOGIN_NAME="root";
	
	public static String _LOGIN_PASSWORD="123456";
	
	private static Connection connect = null;
	
	private CallableStatement cstmt =null;
	
	private ResultSet rs = null;
	
	/**
	 * 连接数据库
	 * @return
	 */
	public static Connection getConnection() {
		try {

			Class.forName("com.mysql.jdbc.Driver");
		}
		catch(ClassNotFoundException e) {
			e.printStackTrace();
		}
		try {
			connect = DriverManager.getConnection(_URL, _LOGIN_NAME, _LOGIN_PASSWORD);
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
		return connect;
	}
	
	/**
	 * execute() 执行存储过程,且存储过程返回一个结果集
	 * 
	 * 当存储过程返回一个结果集时,只需遍历该结果集便可以得到存储过程执行的所有结果
	 */
	public void execCall() {
		connect = getConnection();
		try {
			cstmt = connect.prepareCall("{call proc_stats_buyer()}");
			boolean isOneResultRets=cstmt.execute();	//执行存储过程
			rs = cstmt.getResultSet();	//获取存储过程返回的一个结果集合
			
			while(rs.next()) {
				System.out.println(rs.getString(1)+"====="+rs.getString(2)+"====="+rs.getString(3)+"======"+rs.getString(4)); 
			}
			this.doClose();
		}
		catch(SQLException e){
			e.printStackTrace();
		}
	}
	
	/**
	 * 执行存储过程,返回多条数据的结果集合
	 * 存储过程返回多个结果集 
	 * 
	 *  当存储过程返回多个结果集时,遍历所有结果集才能得到执行的所有结果,使用 getMoreResults() 方法跳转到下一个结果集
	 *
	 */
	public void execMoreResultSetCall() {
		connect = getConnection();
		try {
			cstmt = connect.prepareCall("{call proc_stats_global()}");
			/*
			boolean isMoreResultSets = cstmt.execute();
			rs = cstmt.getResultSet();
			while(rs.next()) {
				System.out.println(rs.getString(1)+"====="+rs.getString(2)+"====="+rs.getString(3)+"======"+rs.getString(4)); 
			}
			*/
			boolean isMoreResultSets = cstmt.execute();
			while (cstmt.getMoreResults()) {	//此语句表达什么意思??
				rs = cstmt.getResultSet();		//表示获取多个结果集合数据的结果集合
				while(rs.next()) {
					System.out.println(rs.getString(1)+"====="+rs.getString(2)+"====="+rs.getString(3)+"======"+rs.getString(4)); 
				}
			}
			this.doClose();
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
	}
	
	
	// 获取多个结果集合
	// 如果存储过程返回多个结果集,每个结果集的数据结构都不一样,或者某些结果集的数据结构未知,则可以使用 getColumnName() 方法来得到结果集中数据的列名
	//存储过程返回多个结果集,并且每个结果集的数据结构未知或者不一样
	
	
	
	/**
	 * 关闭连接
	 */
	public void doClose() {
		try {
			if(null!=rs) {
				rs.close();
				rs=null;
			} 
			if(null!=cstmt) {
				cstmt.close();
				cstmt=null;
			} 
			if(null!=connect) {
				connect.close();
				connect=null;
			}
				
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
	}
	
	
	public static void main(String[]args) {
		TestProcedureDemo02 test = new TestProcedureDemo02();
		test.getConnection();
		//test.execCall();
		test.execMoreResultSetCall();
		test.doClose();
	}
}






 

DELIMITER $$

USE `shopping_thpad_com`$$

DROP PROCEDURE IF EXISTS `proc_stats_buyer`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_stats_buyer`()
BEGIN
	SELECT factors_id,factors_value,ip,pv,uv,bounce_rate FROM stats_buyer WHERE web_id='67679008' LIMIT 1;
    END$$

DELIMITER ;

 

 

DELIMITER $$

USE `shopping_thpad_com`$$

DROP PROCEDURE IF EXISTS `proc_stats_global`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_stats_global`()
BEGIN
	SELECT time_segment,pv,uv,ip,avr_access_time,stat_date FROM stats_global;
    END$$

DELIMITER ;

 

分享到:
评论

相关推荐

    java调用存储过程(含out参数)

    在Java编程中,调用数据库的存储过程是常见的任务,特别是在处理复杂的业务逻辑或需要高效数据操作时。本文将详细讲解如何在Java中调用含有`OUT`参数的存储过程,帮助开发者解决这类问题。 首先,理解存储过程的...

    java操作存储过程总结

    【Java 操作存储过程】 在Java中操作数据库的存储过程是一项常见的任务,这对于数据库交互和数据处理至关重要。这里我们将深入探讨如何使用Java调用不同类型的存储过程,包括无参函数、有返回值的存储过程以及有...

    java 调用存储过程

    在Java编程中,调用存储过程是连接数据库并执行预定义SQL代码的一种常见方式。存储过程是由数据库管理系统(如MySQL, Oracle, SQL Server等)编译并存储的一组操作,可以包含复杂的逻辑、条件判断、循环等,提高数据...

    java 调存储过程

    在Java编程中,调用数据库存储过程是一种常见的操作,特别是在处理复杂的业务逻辑或者批量数据操作时。存储过程是由一组SQL语句组成的预编译代码,它们存储在数据库中,可以被多次调用,提高效率并简化代码管理。...

    java调用存储过程实例

    在IT领域,特别是数据库操作与Java编程的交集部分,调用存储过程是常见的需求之一。根据提供的文件信息,我们可以深入解析如何在Java中通过JDBC(Java Database Connectivity)调用Oracle数据库的存储过程。 ### ...

    DB2Java存储过程.pdf

    ### DB2 Java 存储过程相关知识点 #### 标题:DB2 Java 存储过程 **DB2 Java 存储过程** 主要探讨的是如何在 IBM DB2 数据库环境中利用 Java 编写存储过程。这涉及到 DB2 的一系列产品和服务,特别是与 Java 集成...

    JAVA调用存储过程

    ### JAVA调用存储过程知识点详解 #### 一、无结果集返回的存储过程调用 在Java中调用不返回结果集的存储过程时,主要步骤包括建立连接、准备调用语句、设置输入参数、执行存储过程以及处理可能产生的警告信息。 1...

    Java调用存储过程--传入集合参数

    在这个场景中,我们将从Java应用程序收集一系列用户数据,将其转换为Oracle数组,然后调用一个预定义的存储过程进行批量更新操作。 #### 五、注意事项与优化建议 - **类型匹配**:确保Java对象属性与数据库对象...

    java 调用db2存储过程

    这个存储过程使用了输入参数 inparam,并根据其值执行不同的操作。 四、 Java 调用带有输入参数的存储过程 要在 Java 中调用带有输入参数的存储过程,需要使用 CallableStatement 对象,并将输入参数传递给存储...

    java操作存储过程

    Java操作存储过程是一种常见的数据库交互方式,特别是在处理复杂的业务逻辑或需要高性能的数据处理时。存储过程是预编译的SQL语句集合,存储在数据库服务器中,可以视为可重用的功能模块。Java作为广泛使用的后端...

    Java实现调用MySQL存储过程详解

    存储过程在大型数据库系统中扮演着重要角色,因为它能提高性能、增强安全性、减少网络流量以及简化复杂的操作。在Java应用程序中,可以通过Java Database Connectivity (JDBC) API来调用MySQL的存储过程。 首先,...

    java调用存储过程

    Java调用存储过程是数据库操作中的常见任务,特别是在复杂的业务逻辑和数据处理中。MyEclipse作为一款强大的Java集成开发环境,提供了方便的工具来支持这一功能。下面将详细介绍如何在MyEclipse中使用Java调用存储...

    java调用存储过程源码 sql数据库

    在Java编程中,调用SQL数据库的存储过程是一项常见的任务,尤其在处理复杂业务逻辑或批量数据操作时。本文将详细介绍如何使用Java来调用存储过程,并探讨相关的数据库设计原则。 首先,理解存储过程的基本概念至关...

    java调用存储过程返回数组

    在Java编程中,调用数据库的存储过程并处理返回结果是常见的任务,特别是在需要执行复杂数据库操作或者封装业务逻辑时。本文将详细探讨如何在Java中调用存储过程,并处理返回的数组类型数据。 首先,存储过程是一种...

    java 调用存储过程 实例

    在Java编程中,调用数据库的存储过程是常见的任务,特别是在处理复杂的业务逻辑或数据操作时。本实例将深入探讨如何使用Java来调用Oracle数据库中的存储过程。 首先,我们需要了解存储过程的基本概念。存储过程是预...

    Java调用带参数的存储过程并返回集合

    在Java开发中,有时我们需要与数据库进行深度交互,这时候存储过程就显得尤为重要。特别是当涉及到复杂的业务逻辑或者数据处理时,Oracle数据库中的存储过程能够提供更高效和安全的解决方案。本话题将详细讲解如何...

    Java对存储过程的调用方法

    在Java编程中,调用数据库中的存储过程是常见的任务,特别是在复杂的业务逻辑处理和数据操作时。本篇文章将深入探讨如何使用Java来调用存储过程,以及相关的工具和技术。 首先,存储过程是数据库中预编译的一组SQL...

Global site tag (gtag.js) - Google Analytics