JavaJDBC【四、存储过程的使用】
Mysql还没学到存储过程,不过语法比较简单
此处不深究数据库中的存储过程怎么创建,后面在mysql的学习笔记里再做整理
今天只整理java中如何调用存储过程
- 语句
CallableStatement cs = (CallableStatement) con.prepareCall("call testProcedure()"); //使用prepareCall,用存储过程初始化
ResultSet rs = cs.getResultSet(); //直接调用,返回resultset
cs.registerOutParameter(1, Types.INTEGER); //设置出参
cs.execute(); //或设置出参后直接调用,返回出参
cs.getInt(1); //获取返回值
1. 无参存储过程的调用
public static List<JDBCModel> proceNoParam() throws SQLException {
List<JDBCModel> relist = new ArrayList<JDBCModel>();
Connection con = DBUtil.GetConnection();
CallableStatement cs = (CallableStatement) con
.prepareCall("call testProcedure()");
cs.execute();
ResultSet rs = cs.getResultSet();
while (rs.next()) {
JDBCModel m = new JDBCModel();
m.setId(rs.getInt("id"));
m.setName(rs.getString("name"));
m.setCreatetime(rs.getDate("createtime"));
relist.add(m);
}
return relist;
}
2. 含入参存储过程的调用
public static List<JDBCModel> proceInParam(int id) throws SQLException {
List<JDBCModel> relist = new ArrayList<JDBCModel>();
Connection con = DBUtil.GetConnection();
CallableStatement cs = (CallableStatement) con
.prepareCall("call testInParam(?)");
cs.setInt(1, id);
cs.execute();
ResultSet rs = cs.getResultSet();
while (rs.next()) {
JDBCModel m = new JDBCModel();
m.setId(rs.getInt("id"));
m.setName(rs.getString("name"));
m.setCreatetime(rs.getDate("createtime"));
relist.add(m);
}
return relist;
}
3. 含出参(非ResultSet)存储过程的调用
public static int proceOutParam() throws SQLException {
Connection con = DBUtil.GetConnection();
CallableStatement cs = (CallableStatement) con
.prepareCall("call testOutParam(?)");
cs.registerOutParameter(1, Types.INTEGER);
cs.execute();
int c = cs.getInt(1);
return c;
}
JavaJDBC【四、存储过程的使用】的更多相关文章
- MySQL学习笔记(四)—存储过程
一.概述 存储过程是数据库定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程可以避免开发人员重复的编写相同的SQL语句,而且存储过程是在MySq ...
- MYSQL数据库学习十四 存储过程和函数的操作
14.1 为什么使用存储过程和函数 一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句. 存储过程和函数的优点: 允许标准组件式编程,提高了S ...
- MySQL 基础四 存储过程
-- 定义存储过程 DELIMITER // CREATE PROCEDURE query_student2() BEGIN SELECT * FROM student; END // DELIMIT ...
- MySQL之视图、触发器、事务、存储过程、函数
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- MySQL之视图、触发器、事务、存储过程、函数 流程控制
MySQL之视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 MySQL这个软件想将数据处理的所有事情,能够在mysql这个层面上全部 ...
- day43 数据库学习egon的博客 视图、触发器、事务、存储过程、函数
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- mysql视图 触发器 事物 函数 存储过程
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- mysql:视图,触发器,事务,存储过程,函数。
一 视图 1 什么是视图:视图其实就是通过查询得到一张表并且保存下来,就是一张虚拟的表,并非真实存在,比如我们将两个表在终端通过(inner join)内链接起来,那么我们得到的这个表就叫做视图,其 ...
- Informix存储过程
一.存储过程概述 存储过程是一个用户定义的函数,由存储过程语句(SPL) 和一组SQL语句组成,以可以执行代码形式存储在数据库中,和表.视图.索引等一样,是数据库的一种对象. 存储过程语言SPL(St ...
- mysql八:视图、触发器、事务、存储过程、函数
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
随机推荐
- 一个伪静态与404重定向例子(房产网),.htaccess文件内容
ErrorDocument 404 /404.phpRewriteEngine OnRewriteBase /RewriteRule ^(.*)\.(asp|aspx|asa|asax|dll|jsp ...
- spring cloud之Eureka
Region 表示aws的地理位置,一个region有多个awailability zone,各region间完全隔离.这种方式实现最大的容错和稳定性. spring cloud 默认使用的regio ...
- 1、DNS服务基础
w'indows上名称解析目录: C:\Windows\System32\drivers\etc https://jocent.me/2017/06/18/dns-protocol-principle ...
- 树莓派-Ubuntu Mate开启ssh服务
1. 运行 apt search openssh-server 查看是否安装ssh服务. 2. 如已安装,运行 sudo dpkg-reconfigure openssh-server 重新配置shh ...
- three.js 之 透明物体不能正常显示
这几天遇到一个需求,类似这个案例:http://www.hightopo.com/demo/FaultDetection/ 就是这个透明渐变呼吸光柱,看到之后就想着写个shader材质实现透明度渐变, ...
- 【JulyEdu-Python基础】第 7 课:Python并发编程以及系统常用模块
主要内容 Python多进程与多线程 Python使用Hadoop分布式计算库mrjob Python使用Spark分布式计算库PySpark 例子:分别使用MapReduce和Spark实现word ...
- NumSharp的数组切片功能
NumSharp的数组切片功能 原文地址:https://medium.com/scisharp/slicing-in-numsharp-e56c46826630 翻译初稿(英文水平有限,请多包涵): ...
- 【Python】【demo实验15】【练习实例】【两个数范围内素数的统计】
原题: 判断101-200之间有多少个素数,并输出所有素数. 关于素数的统计,之前已经做过相应的实验了,参考:[显示素数,显示两个数范围内的所有素数] 原题给出的解法,使用math的sqrt函数,这个 ...
- 【LOJ】#3083. 「GXOI / GZOI2019」与或和
LOJ#3083. 「GXOI / GZOI2019」与或和 显然是先拆位,AND的答案是所有数字为1的子矩阵的个数 OR是所有的子矩阵个数减去所有数字为0的子矩阵的个数 子矩阵怎么求可以记录每个位置 ...
- 使用Minikube运行一个本地单节点Kubernetes集群(阿里云)
使用Minikube运行一个本地单节点Kubernetes集群中使用谷歌官方镜像由于某些原因导致镜像拉取失败以及很多人并没有代理无法开展相关实验. 因此本文使用阿里云提供的修改版Minikube创建一 ...