本文实例讲述了java调用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 existssp1 //

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 parametervalue

*/

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程序设计有所帮助。

java 调用mysql存储过程实例_java调用mysql存储过程实例分析相关推荐

  1. java 存储过程 数组_Java调用存储过程返回数组

    Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMB ...

  2. java 怎么页面授权访问_Java调用Linkedin接口API之:获取授权

    配置领英应用 配置地址:https://www.linkedin.com/secure/developer?newapp= 强烈建议您使用 HTTPS 网址必须是绝对网址 (例如: "htt ...

  3. java调用python项目实战_Java调用Python

    今天遇到Java调用一个Python脚本的问题,纠结了大半天,遇到各种问题.网上搜索的大部分都是用jython,但是我想要调用的python脚本里有import urllib,这个urllib也不是什 ...

  4. java mysql 插入 乱码_java向mysql插入数据乱码问题的解决方法

    遇到java向mysql插入数据乱码问题,如何解决? MySQL默认编码是latin1 mysql> show variables like 'character%'; +----------- ...

  5. java连接mysql抛异常_Java 连接MySQL数据库 插入中文 抛出异常

    mysql数据库字符集设为默认: 下面解决好的代码,没乱码,我测试过的 String sContent = new String(request.getParameter("content1 ...

  6. java 怎么执行数据库命令_java 调用命令 备份mysql数据库

    代码如下: 1  String command  =   " cmd /c C:/Program Files/MySQL/MySQL Server 5.0/bin>mysqldump ...

  7. java调用支付接口实例_Java 调用支付宝接口

    1.注册开发者中心应用   登录点击沙箱服务 https://open.alipay.com/platform/developerIndex.htm 2.创建沙箱应用获取APPID和支付宝网关地址(创 ...

  8. java调用dll实例_java调用DLL实例

    创建DLL工程,网上已有例子如http://wenku.baidu.com/view/df05f80103d8ce2f0066238a.html,现在是vs2010与文章中提到的2005操作基本一样. ...

  9. 环信 java接口实例_java调用环信接口

    现在需要实现app中消息禁言功能?需要调用环信的接口,已经有文档了,但是不知道怎么调用?不清楚怎么将环信的接口继承到java代码中?请大家多多指教. 添加禁言 将一个用户禁言.用户被禁言后,将无法在群 ...

  10. java操作mysql数据库实例_java操作mysql数据库实例_MySQL

    bitsCN.com //接口类package com.syxy.dao;import com.syxy.domain.User;//操纵数据库的 dao接口public interface User ...

最新文章

  1. eclipse 使用lombok 精简java bean
  2. selenium3浏览器驱动安装设置方法
  3. 2021全年“遇冷”后,“电商节”该何去何从?
  4. 我的梦幻动画实习工作总结
  5. 实心和空心哪个抗弯能力强_为什么轮胎不设计成实心的?不怕爆胎 480阅读
  6. jsp浏览图像bean原理分析与改良-JSP实用教程(第三版)耿祥义 张跃平编著第4章例题4_9-动态获取文件夹中的文件并返回
  7. python桌面整理小助手
  8. go的内存管理和内存逃逸
  9. 河南科技大学计算机科学与技术分数线,河南科技大学2017年河南省各专业录取分数线...
  10. 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(下)性能优化
  11. asp.net 获得根文件夹在服务器上物理路径,asp.net获取网站目录物理路径示例
  12. 戴尔台式计算机型号怎么查,戴尔台式电脑型号的查询方法
  13. NYOJ-845 无主之地1
  14. ctrl+v粘贴快捷键突然不能使用的原因及解决方案
  15. 苹果账号 协议、税务和银行业务填写教程
  16. python前端——HTML超文本标记语言、CSS层叠样式表
  17. 【论文阅读】用于自动中文作文评分的多阶段预训练
  18. 深度分析,皓丽M5_企业版_增强版共同点与核心区别?
  19. 将才与帅才的十二个差异
  20. 高德逆地理编码 USERKEY_PLAT_NOMATCH 错误

热门文章

  1. mysql sql优化与调优机制详解_MySQL性能调优——锁定机制与锁优化分析详解
  2. JavaScript:三大家族
  3. await js 报错_async/await优雅的错误处理方法总结
  4. hdf5文件-环境配置/使用读写
  5. 加密设备攻防(二)- 智能设备篇
  6. 光学相干断层成像术(OCT)
  7. Windows远程访问Linux (Ubuntu)服务器
  8. 运动状态估计之卡尔曼滤波详解
  9. orcale物化视图刷新
  10. Java Web 开发的目录结构