数据库的测试代码如下 :
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
CallableStatement 调用mysql5.0的存储过程和方法 配有创建存储过程和方法的源代码
【IT十八掌徐培成】Java基础第23天-04.jdbc-mysql存储过程.zip
android通过jdbc方式连接mysql,并执行存储过程。连接数据库部分最好新建一个线程来实现和主线程分开。编译之前确定添加了mysql-connector-java-5.0.8-bin库否则会出错
1. 创建存储过程 建立一个MySQL的存储过程 add_pro 代码如下: delimiter // drop procedure add_pro // create procedure add_pro(a int , b int , out sum int ) begin set sum = a * b; end; // 2. 调用存储过程 ...
【IT十八掌徐培成】Java基础第23天-04.jdbc-mysql存储过程 - 副本.zip
JDBC+Mysql实现图片存储。完整代码下载。
JDBC调用mysql存储过程 很简单 很实用。。。。。。
MySQL Stored Procedure Programming Advance Praise for MySQL Stored Procedure Programming Preface Objectives of This Book Structure of This Book What This Book Does Not Cover Conventions ...
本项目主要是通过JDBC连接数据库,通过调用存储过程来操作(Mysql)数据库。
JDBC 连接 MySQL 数据库,进行增删该查,在控制台输入输出数据,不涉及jsp和html,加入存储过程和函数的调用
本文基于实验要求设计和实现了一款航空订票系统,采用Java Swing框架进行界面开发,并通过JDBC连接MySQL数据库实现数据的存储和检索。通过Java Swing框架,系统实现了页面跳转、用户交互和界面美化等功能。利用JDBC...
MySQL数据库:作为一种开源的关系型数据库管理系统,MySQL提供了稳定、高效的数据存储和管理能力。 Java Control:实现用户友好的界面设计。 论文说明:...
官方MySQL 存储过程教程的中文版 以及jdbc中调用MYSQL存储过程的详细例子
很简单的一个例子,介绍如何用mysql数据库存储本体 首先要安装好MySQL服务器,然后建立一个数据库,如OntologyDB。再建立一个用户如OntologyDBUser,并给予其对数据库OntologyDB的所有操作权限。然后下载MySQL的JDBC...
目的:使用JDBC连接MySQL数据库并且完成增删改查。 介绍:1)一种执行SQL语言的Java API。... 5)jdbc可以直接调用数据库存储过程。 6)jdbc操作数据库的效率很高。 7)学会了jdbc,什么数据库存取数据都会了。
在该课程管理系统中,JDBC用于与MySQL数据库进行通信,包括建立连接、执行SQL语句、获取查询结果等。 数据库设计:数据库设计是系统开发中至关重要的一部分,它涉及到数据表的结构设计、关系建立以及数据完整性等...
JDBC连接Oracle 11g及Mysql5,涉及传参,反射,读取属性文件,预处理,(预处理)批处理,带参数的存储过程,事务处理,可滚动的结果集,可更新的结果集
(1)使用Spring JDBC实现书店的购书过程,即有如下一个BookShopDao接口,编写BookShopDaoImp类实现该接口中的所有方法,并通过JUnit测试这些方法。 public interface BookShopDao { //根据书号获取书的单价 //...