使用存储过程的好处就不说了,下面简要说一下存储过程的使用。
1. 首先,创建一个新表,用于后面Java代码中的测试。
create table a
(
id int(10) not null,
name varchar(20) not null
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. 向表中插入一些数据。
insert into a ( `id`, `name` ) values ('1', 'best');
insert into a ( `id`, `name` ) values ('2', 'great');
insert into a ( `id`, `name` ) values ('3', 'china');
insert into a ( `id`, `name` ) values ('4', 'beijing');
3. 修改MySQL中的默认换行符";"为'##'。
delimiter ##
4. 创建一个带有一个输出参数的存储过程。
create procedure hello(out num int)
begin
select Max(id) into num from a;
end##
5. 创建一个带有两个输出参数的存储过程。
create procedure hello2(out num int, out str varchar(20))
begin
select Max(id) into num from a;
select name from a where a.id = num into str;
end##
6. 将MySQL的换行符修改回";"。
delimiter ;
7. Java程序中的调用。
package cn.lifx.util.procedure;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;
public class Test
{
String url = "jdbc:mysql://127.0.0.1:3306/test";
String name = "root";
String password = "china";
public static void main(String[] args)
{
Test test = new Test();
test.proc();
test.proc2();
}
public Connection getConnection()
{
Connection con = null;
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, name, password);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public void proc()
{
Connection conn = getConnection();
CallableStatement stmt = null;
try
{
stmt = conn.prepareCall("{call hello(?)}");
stmt.registerOutParameter(1, Types.INTEGER);
stmt.execute();
int i = stmt.getInt(1);
System.out.println(i);
}catch(Exception e){
e.printStackTrace();
}finally
{
try
{
stmt.close();
conn.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
public void proc2()
{
Connection conn = getConnection();
CallableStatement stmt = null;
try
{
stmt = conn.prepareCall("{call hello2(?, ?)}");
stmt.registerOutParameter(1, Types.INTEGER);
stmt.registerOutParameter(2, Types.VARCHAR);
stmt.execute();
int i = stmt.getInt(1);
String str = stmt.getString(2);
System.out.println(i + " " + str);
}catch(Exception e){
e.printStackTrace();
}finally
{
try
{
stmt.close();
conn.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
}
8. 输出结果为:
4
4 beijing
下面的链接是这些过程在MySQL的CMD命令行中的运行过程。
http://dl.iteye.com/upload/picture/pic/44745/31622578-8500-3019-b6f2-dc3858cba641.jpg
http://dl.iteye.com/upload/picture/pic/44747/e3e5cc97-1ab3-363b-aacc-6850b71c48d7.jpg
分享到:
相关推荐
Java调用Mysql存储过程,Mysql存储过程源代码在该项目根目录下。
java 调用 mysql存储过程实例
相信大家都知道存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集。存储过程是数据库中的一个重要对象,任何一个...Java调用mysql存储过程,实现如下,有需要的朋友们可以参考借鉴,下面来一起看看吧。
Java调用数据库存储过程[mysql测试通过]
如何在java中调用mysql的存储过程的事例-how Calling mysql storage process stories
MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...
Java调用存储过程--传入集合参数 具体的方法描述分析
JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip
资源包中囊括了MySQL数据库中的存储过程的使用包含的基本结构及日常所使用到的基本函数的使用【包括java端调用存储过程,创建临时表,动态执行sql语句,过程的递归调用,指针循环取数,批量创建表删除表,树状结构的...
mysql 存储过程 ,存储函数的调用示例
使用Java struts+spring_ibaits+调用Mysql存储过程 实现增删改查
hibernate本对数据库的操作有些不完美,有必要的时候可以调用存储过程来补足。
android通过jdbc方式连接mysql,并执行存储过程。连接数据库部分最好新建一个线程来实现和主线程分开。编译之前确定添加了mysql-connector-java-5.0.8-bin库否则会出错
主要介绍了Java调用MySQL存储过程并获得返回值的方法,实例分析了java实现MySQL存储过程的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
java 调用存储过程 mysql数据库 有数据库脚本
analyData这是一个java定时任务,定时调用mysql的存储过程
通过调用数据库连接对话框建立数据库连接 (目前测试支持 MSSQL, Oracle, Access, MySql) 根据自定义模板通过数据库表、视图和存储过程批量生成代码, 模板编辑和代码查看支持语法高亮 (Java, VB, T-SQL) 可以...
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. 调用存储过程 ...
主要介绍了java调用mysql存储过程的方法,以实例形式较为详细的分析了mysql数据库的建立和存储过程的实现方法,需要的朋友可以参考下
MySQL存储过程之java调用 9 MySQL存储过程实现动态查询 12 MySQL应用总结 12 MySQL数据管理 15 数据管理 15 MySQL数据导出 15 MySQL数据还原 15 MySQL灾难性复制恢复总结 16 MySQL授权管理 17 未解决及已解决问题 19...