博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql 存储过程
阅读量:5902 次
发布时间:2019-06-19

本文共 2206 字,大约阅读时间需要 7 分钟。

1、没有参数的存储过程

DELIMITER $$   --创建结束符 CREATE PROCEDURE proce1() BEGIN    SELECT * FROM users;   --SQL语句,一定要以;结束 END $$  DELIMITER ;   --还原结束符  CALL proce1     --调用存储过程

2、只有输入参数的存储过程

1 DELIMITER $$ 2   3 CREATE PROCEDURE proce2(IN _id VARCHAR(32),IN _name VARCHAR(50) )    --输入参数要用IN开头  名称   类型 4  BEGIN 5     INSERT INTO users(id,username) VALUES (_id,_name); 6  END $$ 7   8  DELIMITER ; 9  10  CALL proce2('U002','Tom')    --调用存储过程11  12  13   CALL proce1

3、只有输出参数的

DELIMITER // CREATE PROCEDURE proce3(OUT _size INT)   --输出参数,以out开头 BEGIN    SELECT COUNT(1) INTO _size FROM users;  --设置到_size中   也可以  SET _size=(SELECT COUNT(1)  FROM users;); END //  DELIMITER ;  CALL proce3(@count); SELECT @count

 

在Java程序中调用存储过程

1、调用没有的存储过程

1 public void test() throws Exception 2     { 3         Connection conn=DbUtils.getcConnection();//获取conn 4         CallableStatement cs= conn.prepareCall("{call proce1()}");//调用存储过程 5         //如果最后一个sql语句为select语句,为true  否则为false 6         //【如果语句为设置值,还是false】SELECT COUNT(1) INTO _size FROM users;  --设置到_size中   也可以  SET _size=(SELECT COUNT(1)  FROM users;); 7         boolean b=cs.execute(); 8         if(b) 9         {10             ResultSet rs= cs.getResultSet();11             while(rs.next())12             {13                 System.out.println("name:"+rs.getString(1));14             }15         }16         conn.close();17     }

2、调用有输入参数的存储过程

1 public void Test2() throws Exception 2     { 3         Connection conn=DbUtils.getcConnection(); 4         CallableStatement cs= conn.prepareCall("{call proce2(?,?) }"); 5         cs.setString(1, "U003");//设置 IN 值 6         cs.setString(2, "Lucy"); 7         boolean b=cs.execute(); 8         System.out.println("boolean:"+b); 9         conn.close();10     }

3、调用有输出参数的存储过程

1 public void Test3() throws Exception 2     { 3         Connection conn=DbUtils.getcConnection(); 4         CallableStatement cs= conn.prepareCall("{call proce3(?) }"); 5         cs.registerOutParameter(1, Types.INTEGER);//设置out类型值;Types转换为数据库类型 6         boolean b= cs.execute(); 7         int size=cs.getInt(1);//获取值 8         System.err.println("size:"+size); 9         conn.close();10     }

 

转载于:https://www.cnblogs.com/liuwt365/p/4130761.html

你可能感兴趣的文章
ListView的动态刷新问题——用notifyDataSetChanged没作用
查看>>
图解 HTTP 协议
查看>>
EventBus猜想 ----手把手带你自己实现一个EventBus
查看>>
2.11 确定运行计划
查看>>
经验之谈—OAuth授权流程图
查看>>
ubuntu16.04 安装指定版本Node,升级npm到指定版本
查看>>
腾讯云服务器 离线安装最新稳定版MariaDB 10.2.6
查看>>
浅谈PCIe体系结构(详细剖析PCIE数据流向)
查看>>
opencv3 学习笔记(二)
查看>>
数据库系统学习(六)-SQL语言基本操作
查看>>
jquery验证篇
查看>>
如何快速掌握一门技术
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
怎样编译和安装memcached
查看>>
【数据库】Mysql更改默认引擎为Innodb的步骤方法
查看>>
【我是正义的化身】一个钓鱼网站的社工+渗透之路
查看>>
[LeedCode OJ]#85 Maximal Rectangle
查看>>
C++复合类型(数组)
查看>>
Android WebView页面加载优化
查看>>
Selenium WebDriver如何模拟复制和粘贴
查看>>