`
suchj
  • 浏览: 147478 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 调用 mysql存储过程实例(转)

    博客分类:
  • java
阅读更多
这是我学习MySQL存储过程中找到的,为了以后别忘了,留念一下
原文地址:http://dev.firnow.com/course/3_program/java/javajs/200896/139314.html

import java.sql.*;
 
/**
iGoder
*/
public class ProcedureTest {
/*
表和存储过程定义如下:
delimiter //
 
DROP TABLE if exists test //
    CREATE TABLE test(
      id int(11) NULL
    ) //

drop procedure if exists sp1 //
   
    create procedure sp1(in p int)
    comment 'insert into a int value'
    begin
      declare v1 int;
      set v1 = p;
      insert into test(id) values(v1);
    end
    //
   
    drop procedure if exists sp2 //
    create procedure sp2(out p int)
    begin
      select max(id) into p from test;
    end
    //
    
drop procedure if exists sp6 //
    create procedure sp6()
    begin
       select * from test;
    end//
   
*/
 
public static void main(String[] args) {
  //callIn(111);
  //callOut();
  callResult();
}
 
/**
  * 调用带有输入参数的存储过程
  * @param in     stored procedure input parameter value
  */
public static void callIn(int in){
  //获取连接
  Connection conn = ConnectDb.getConnection();
  CallableStatement cs = null;
  try {
   //可以直接传入参数
   //cs = conn.prepareCall("{call sp1(1)}");
  
   //也可以用问号代替
   cs = conn.prepareCall("{call sp1(?)}");
   //设置第一个输入参数的值为110
   cs.setInt(1, in);
  
   cs.execute();
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if(cs != null){
     cs.close();
    }
    if(conn != null){
     conn.close();
    }
   } catch (Exception ex) {
    ex.printStackTrace();
   }
  }
 
}

/**
  * 调用带有输出参数的存储过程
  *
  */
public static void callOut() {
  Connection conn = ConnectDb.getConnection();
  CallableStatement cs = null;
  try {
   cs = conn.prepareCall("{call sp2(?)}");
   //第一个参数的类型为Int
   cs.registerOutParameter(1, Types.INTEGER);
   cs.execute();
  
   //得到第一个值
   int i = cs.getInt(1);
   System.out.println(i);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if(cs != null){
     cs.close();
    }
    if(conn != null){
     conn.close();
    }
   } catch (Exception ex) {
    ex.printStackTrace();
   }
  }
}

/**
  * 调用输出结果集的存储过程
  */
public static void callResult(){
  Connection conn = ConnectDb.getConnection();
  CallableStatement cs = null;
  ResultSet rs =  null;
  try {
   cs = conn.prepareCall("{call sp6()}");
   rs = cs.executeQuery();
  
   //循环输出结果
   while(rs.next()){
    System.out.println(rs.getString(1));
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if(rs != null){
     rs.close();
    }
    if(cs != null){
     cs.close();
    }
    if(conn != null){
     conn.close();
    }
   } catch (Exception ex) {
    ex.printStackTrace();
   }
  }
}

}
 
 
/**
*获取数据库连接的类
*/

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
class ConnectDb {

public static Connection getConnection(){
  Connection conn = null;
  PreparedStatement preparedstatement = null;
  try {
   Class.forName("org.gjt.mm.mysql.Driver").newInstance();
   String dbname = "test";
   String url ="jdbc:mysql://localhost/"+dbname+"?user=root&password=root&useUnicode=true&characterEncoding=8859_1" ;
   conn= DriverManager.getConnection(url);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return conn;
}
 
}
分享到:
评论

相关推荐

    Java调用数据库存储过程[mysql测试通过]

    以下是一个简单的Java调用MySQL存储过程的示例: ```java import java.sql.*; public class TestJavaProcedure { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb"; ...

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

    ### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...

    如何在java中调用mysql的存储过程的事例

    这就是在Java中调用MySQL存储过程的基本步骤。在实际开发中,你可能需要根据具体的需求进行调整,如处理多结果集、异常处理等。理解这个过程可以帮助你更有效地利用存储过程提升数据库操作的效率和安全性。

    java 调用存储过程

    值得注意的是,上述代码中的文件名列表(如Project1.cfg、Unit1.dcu等)与Java调用存储过程无关,它们看起来像是Delphi或FreePascal项目的文件,这些文件通常用于描述项目配置、单元信息、表单布局等,而不是与Java...

    java调用mysql存储过程实例分析

    在Java编程中,调用MySQL存储过程是一种常见的数据操作任务,尤其...以上就是通过Java调用MySQL存储过程的基本方法和实例分析,希望对理解和实践这一技术有所帮助。在实际开发中,可以根据具体需求调整和扩展这些代码。

    java调用存储过程

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

    JDBC调用MySQL5存储过程[文].pdf

    本文将详细讲解如何使用JDBC调用MySQL5的存储过程,包括存储过程的创建、JDBC调用过程以及处理输入输出参数。 首先,我们创建一个简单的MySQL5数据库表`user`,用于演示存储过程的插入操作: ```sql CREATE TABLE ...

    analyData:这是一个java定时任务,定时调用mysql的存储过程

    本项目“analyData”就是一个使用Java实现的定时任务,它的主要功能是定期调用MySQL数据库中的存储过程,以执行数据分析或处理任务。下面我们将深入探讨这个项目涉及到的关键知识点。 1. **Java定时任务**: Java...

    JAVA100例之实例58 调用存储过程

    本实例将详细讲解如何在Java中调用Oracle、MySQL或其他支持存储过程的数据库系统中的存储过程。 首先,确保你已经创建了一个存储过程。例如,在MySQL中,一个简单的存储过程可能如下所示: ```sql CREATE ...

    mysql存储过程和存储函数的示例

    mysql 存储过程 ,存储函数的调用示例

    jdbc调用mysql存储过程实现代码

    总的来说,通过JDBC调用MySQL存储过程是Java与数据库交互的一种高级功能,它允许我们在数据库端封装复杂的业务逻辑,提高程序的可维护性和性能。理解并熟练掌握这个过程,对于开发高效、稳定的数据库应用至关重要。

    maven+SpringMVC+Spring+Mybatis图片上传本地以及显示+调用Mysql存储过程

    标题 "maven+SpringMVC+Spring+Mybatis图片上传本地以及显示+调用Mysql存储过程" 描述了一个基于Java技术栈的Web应用程序开发案例,涵盖了四个关键技术和数据库操作。下面将对这些技术及其相互作用进行详细阐述。 1...

    IBatis查删改查与调用存储过程 mysql数据库

    通过这篇文章,读者可以了解到如何在Java项目中使用IBatis进行数据库操作,并掌握调用MySQL存储过程的方法。作者很可能会提供详细的步骤、示例代码和实战案例,帮助读者更好地理解和应用这些技术。由于没有具体的...

    在Java中调用存储过程详解

    以下是一个简单的Java调用MySQL存储过程的例子: ```java import java.sql.*; public class CallProcedureExample { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb...

    在java中使用存储过程

    在Java中使用存储过程涉及到多个知识点,包括数据库连接、CallableStatement接口的应用以及具体的SQL语句调用等。本文将从这些方面入手,详细介绍如何在Java应用程序中调用存储过程。 ### 一、数据库连接 #### 1.1...

Global site tag (gtag.js) - Google Analytics