`
haiyupeter
  • 浏览: 427403 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JDBC与MySQL存储过程

阅读更多

数据库的测试代码如下 :

1、新建表test
create table test(
field1 int not null
)
TYPE=MyISAM ;
insert into test(field1) values(1);


2、删除已存在的存储过程
-- 删除储存过程
delimiter // -- 定义结束符号
drop procedure p_test;


3、mysql存储过程定义
create procedure p_test()
begin
declare temp int;
set temp = 0;
update test set field1 = values(temp);
end


4、调用方法
CallableStatement cStmt = conn.prepareCall("{call p_test()}");
cStmt.executeUpdate();

 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;
 }
 
}
 

 

分享到:
评论

相关推荐

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

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

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

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

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

    总的来说,Java通过JDBC调用MySQL存储过程涉及到连接数据库、创建`CallableStatement`、执行存储过程和处理结果。这使得开发者能够在Java应用中灵活地利用数据库提供的强大功能,实现更高效的数据处理。

    jdbc调用mysql5.0的存储过程和方法

    CallableStatement 调用mysql5.0的存储过程和方法 配有创建存储过程和方法的源代码

    【IT十八掌徐培成】Java基础第23天-04.jdbc-mysql存储过程 - 副本.zip

    在本课程“Java基础第23天-04.jdbc-mysql存储过程”中,IT十八掌徐培成老师将深入讲解如何利用Java操作MySQL的存储过程。 存储过程是数据库中预编译的SQL语句集合,可以包含多个SQL语句、控制流结构以及输入/输出...

    android通过jdbc方式连接mysql,并执行存储过程

    android通过jdbc方式连接mysql,并执行存储过程。连接数据库部分最好新建一个线程来实现和主线程分开。编译之前确定添加了mysql-connector-java-5.0.8-bin库否则会出错

    【IT十八掌徐培成】Java基础第23天-04.jdbc-mysql存储过程.zip

    今天我们要深入探讨的是Java中的JDBC以及如何结合MySQL数据库来使用存储过程。 存储过程是数据库中的一个重要功能,它是一组预编译的SQL语句,可以包含控制流语句,如条件判断和循环。使用存储过程的优点包括提高...

    Java调用Mysql存储过程

    总之,Java调用MySQL存储过程是一个涉及JDBC、CallableStatement和数据库交互的过程。理解这些步骤并正确地应用它们,可以有效地利用存储过程提高应用程序的性能和效率。记得在实际开发中,根据实际情况调整代码,...

    JDBC+Mysql实现图片存储

    本篇文章将深入探讨如何使用Java的Java Database Connectivity(JDBC)接口与MySQL数据库来实现图片的存储和检索。 首先,我们需要理解JDBC的角色。JDBC是Java平台上的一个标准API,它为程序员提供了连接和操作关系...

    JDBC 调用存储过程方法

    了解并熟练掌握JDBC调用存储过程的方法,能够帮助你更高效地实现Java程序与数据库之间的交互。 综上所述,Java程序员可以通过JDBC API方便地在Java应用程序中调用存储过程,提高代码的可读性和可维护性。通过理解并...

    JDBC调用存储过程

    本文将详细讲解如何使用JDBC来调用存储过程,以实现数据的增删改查操作。 首先,理解存储过程是数据库中的一个重要概念。存储过程是一组预先编译好的SQL语句集合,它可以包含控制流语句、输入/输出参数,甚至可以有...

    mysql调用存储过程

    总之,通过JDBC调用MySQL存储过程使得Java应用程序能够灵活地与数据库交互,执行复杂的业务逻辑,同时保持代码的简洁性和可读性。这在大型系统中尤其重要,因为它允许数据库管理员在不改变应用程序代码的情况下优化...

    JAVA jdbc-mysql练习

    通过实践,你可以学习如何处理更复杂的情况,如批量更新、连接池管理和存储过程调用。在提供的压缩包文件中,可能包含了一些示例代码,通过阅读和运行这些代码,你将更好地掌握JDBC与MySQL的结合使用。 记住,理论...

    JDBC连接MySQL例子

    综上所述,这个例子不仅展示了JDBC基础的数据库连接过程,还涉及了配置文件的使用以及大文本和图片数据的处理,是学习JDBC与MySQL交互的一个实用教程。对于初学者来说,理解并实践这个例子有助于提升数据库操作的...

    JDBC连接MySQL 实例

    总的来说,JDBC连接MySQL涉及的知识点包括:JDBC的组件和工作原理、MySQL JDBC驱动的使用、数据库连接的建立与关闭、SQL语句的执行以及结果集的处理。通过理解这些概念,开发者可以有效地在Java应用中集成MySQL...

    jdbc连接mysql工具类

    MySQL是一款广泛应用的关系型数据库管理系统,它与JDBC结合,为开发者提供了方便的数据操作接口。下面将详细介绍如何使用Eclipse作为开发环境,通过编写一个JDBC工具类来连接MySQL数据库,并实现基本的增删改查功能...

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

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

    PB11.5 通过JDBC连接MySQL

    JDBC是Java平台的标准接口,用于与各种数据库进行通信,包括MySQL。 首先,要建立PB11.5和MySQL之间的连接,你需要以下关键组件: 1. **MySQL数据库服务器**:确保已经安装并运行了MySQL服务器,这是数据存储和...

Global site tag (gtag.js) - Google Analytics