java 调用mysql存储过程实例_java调用mysql存储过程实例分析
本文实例讲述了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存储过程实例分析相关推荐
- java 存储过程 数组_Java调用存储过程返回数组
Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMB ...
- java 怎么页面授权访问_Java调用Linkedin接口API之:获取授权
配置领英应用 配置地址:https://www.linkedin.com/secure/developer?newapp= 强烈建议您使用 HTTPS 网址必须是绝对网址 (例如: "htt ...
- java调用python项目实战_Java调用Python
今天遇到Java调用一个Python脚本的问题,纠结了大半天,遇到各种问题.网上搜索的大部分都是用jython,但是我想要调用的python脚本里有import urllib,这个urllib也不是什 ...
- java mysql 插入 乱码_java向mysql插入数据乱码问题的解决方法
遇到java向mysql插入数据乱码问题,如何解决? MySQL默认编码是latin1 mysql> show variables like 'character%'; +----------- ...
- java连接mysql抛异常_Java 连接MySQL数据库 插入中文 抛出异常
mysql数据库字符集设为默认: 下面解决好的代码,没乱码,我测试过的 String sContent = new String(request.getParameter("content1 ...
- java 怎么执行数据库命令_java 调用命令 备份mysql数据库
代码如下: 1 String command = " cmd /c C:/Program Files/MySQL/MySQL Server 5.0/bin>mysqldump ...
- java调用支付接口实例_Java 调用支付宝接口
1.注册开发者中心应用 登录点击沙箱服务 https://open.alipay.com/platform/developerIndex.htm 2.创建沙箱应用获取APPID和支付宝网关地址(创 ...
- java调用dll实例_java调用DLL实例
创建DLL工程,网上已有例子如http://wenku.baidu.com/view/df05f80103d8ce2f0066238a.html,现在是vs2010与文章中提到的2005操作基本一样. ...
- 环信 java接口实例_java调用环信接口
现在需要实现app中消息禁言功能?需要调用环信的接口,已经有文档了,但是不知道怎么调用?不清楚怎么将环信的接口继承到java代码中?请大家多多指教. 添加禁言 将一个用户禁言.用户被禁言后,将无法在群 ...
- java操作mysql数据库实例_java操作mysql数据库实例_MySQL
bitsCN.com //接口类package com.syxy.dao;import com.syxy.domain.User;//操纵数据库的 dao接口public interface User ...
最新文章
- eclipse 使用lombok 精简java bean
- selenium3浏览器驱动安装设置方法
- 2021全年“遇冷”后,“电商节”该何去何从?
- 我的梦幻动画实习工作总结
- 实心和空心哪个抗弯能力强_为什么轮胎不设计成实心的?不怕爆胎 480阅读
- jsp浏览图像bean原理分析与改良-JSP实用教程(第三版)耿祥义 张跃平编著第4章例题4_9-动态获取文件夹中的文件并返回
- python桌面整理小助手
- go的内存管理和内存逃逸
- 河南科技大学计算机科学与技术分数线,河南科技大学2017年河南省各专业录取分数线...
- 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(下)性能优化
- asp.net 获得根文件夹在服务器上物理路径,asp.net获取网站目录物理路径示例
- 戴尔台式计算机型号怎么查,戴尔台式电脑型号的查询方法
- NYOJ-845 无主之地1
- ctrl+v粘贴快捷键突然不能使用的原因及解决方案
- 苹果账号 协议、税务和银行业务填写教程
- python前端——HTML超文本标记语言、CSS层叠样式表
- 【论文阅读】用于自动中文作文评分的多阶段预训练
- 深度分析,皓丽M5_企业版_增强版共同点与核心区别?
- 将才与帅才的十二个差异
- 高德逆地理编码 USERKEY_PLAT_NOMATCH 错误