数据库的测试代码如下 :
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的存储过程,包括存储过程的创建、JDBC调用过程以及处理输入输出参数。 首先,我们创建一个简单的MySQL5数据库表`user`,用于演示存储过程的插入操作: ```sql CREATE TABLE ...
总的来说,通过JDBC调用MySQL存储过程是Java与数据库交互的一种高级功能,它允许我们在数据库端封装复杂的业务逻辑,提高程序的可维护性和性能。理解并熟练掌握这个过程,对于开发高效、稳定的数据库应用至关重要。
总的来说,Java通过JDBC调用MySQL存储过程涉及到连接数据库、创建`CallableStatement`、执行存储过程和处理结果。这使得开发者能够在Java应用中灵活地利用数据库提供的强大功能,实现更高效的数据处理。
CallableStatement 调用mysql5.0的存储过程和方法 配有创建存储过程和方法的源代码
在本课程“Java基础第23天-04.jdbc-mysql存储过程”中,IT十八掌徐培成老师将深入讲解如何利用Java操作MySQL的存储过程。 存储过程是数据库中预编译的SQL语句集合,可以包含多个SQL语句、控制流结构以及输入/输出...
android通过jdbc方式连接mysql,并执行存储过程。连接数据库部分最好新建一个线程来实现和主线程分开。编译之前确定添加了mysql-connector-java-5.0.8-bin库否则会出错
今天我们要深入探讨的是Java中的JDBC以及如何结合MySQL数据库来使用存储过程。 存储过程是数据库中的一个重要功能,它是一组预编译的SQL语句,可以包含控制流语句,如条件判断和循环。使用存储过程的优点包括提高...
总之,Java调用MySQL存储过程是一个涉及JDBC、CallableStatement和数据库交互的过程。理解这些步骤并正确地应用它们,可以有效地利用存储过程提高应用程序的性能和效率。记得在实际开发中,根据实际情况调整代码,...
本篇文章将深入探讨如何使用Java的Java Database Connectivity(JDBC)接口与MySQL数据库来实现图片的存储和检索。 首先,我们需要理解JDBC的角色。JDBC是Java平台上的一个标准API,它为程序员提供了连接和操作关系...
了解并熟练掌握JDBC调用存储过程的方法,能够帮助你更高效地实现Java程序与数据库之间的交互。 综上所述,Java程序员可以通过JDBC API方便地在Java应用程序中调用存储过程,提高代码的可读性和可维护性。通过理解并...
本文将详细讲解如何使用JDBC来调用存储过程,以实现数据的增删改查操作。 首先,理解存储过程是数据库中的一个重要概念。存储过程是一组预先编译好的SQL语句集合,它可以包含控制流语句、输入/输出参数,甚至可以有...
总之,通过JDBC调用MySQL存储过程使得Java应用程序能够灵活地与数据库交互,执行复杂的业务逻辑,同时保持代码的简洁性和可读性。这在大型系统中尤其重要,因为它允许数据库管理员在不改变应用程序代码的情况下优化...
通过实践,你可以学习如何处理更复杂的情况,如批量更新、连接池管理和存储过程调用。在提供的压缩包文件中,可能包含了一些示例代码,通过阅读和运行这些代码,你将更好地掌握JDBC与MySQL的结合使用。 记住,理论...
综上所述,这个例子不仅展示了JDBC基础的数据库连接过程,还涉及了配置文件的使用以及大文本和图片数据的处理,是学习JDBC与MySQL交互的一个实用教程。对于初学者来说,理解并实践这个例子有助于提升数据库操作的...
总的来说,JDBC连接MySQL涉及的知识点包括:JDBC的组件和工作原理、MySQL JDBC驱动的使用、数据库连接的建立与关闭、SQL语句的执行以及结果集的处理。通过理解这些概念,开发者可以有效地在Java应用中集成MySQL...
MySQL是一款广泛应用的关系型数据库管理系统,它与JDBC结合,为开发者提供了方便的数据操作接口。下面将详细介绍如何使用Eclipse作为开发环境,通过编写一个JDBC工具类来连接MySQL数据库,并实现基本的增删改查功能...
以下是一个简单的Java调用MySQL存储过程的示例: ```java import java.sql.*; public class TestJavaProcedure { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb"; ...
JDBC是Java平台的标准接口,用于与各种数据库进行通信,包括MySQL。 首先,要建立PB11.5和MySQL之间的连接,你需要以下关键组件: 1. **MySQL数据库服务器**:确保已经安装并运行了MySQL服务器,这是数据存储和...