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语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
随机推荐
- Spring配置文件里加载路径中的通配符
?代表匹配任意一个字符 *代表匹配0个或多个任意字符 **/匹配任意多个目录 classpath:app-Beans.xml 查找app-Beans.xm ...
- Djang之ModelForm组件的简单使用
ModelForm组件的简单使用 models.py from django.db import models class UserInfo(models.Model): username = mod ...
- Delphi7-TClientDataSet: 查找
TClientDataSet[12]: 查找 方法有:1.Locate: 根据字段列表和对应的字段值查找并定位, 找到返回 True.2.Lookup: 根据字段列表和对应的字段值查找, 返回需要的字 ...
- SSM整合junit单元测试之org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
想用SSM做一点小测试,项目整合完毕,直接使用junit测试mybatis,出现如下错误(SuperTest类中进行了spring运行环境加载): 解决思路: 检查mapper接口与mapper.xm ...
- Spring Boot 2.0 集成 Druid 数据源
一.Maven项目依赖 <!-- 开发者工具(热部署 修改classpath下的文件springboot自动重启) --> <dependency> <groupId&g ...
- 最近忙科研立项 & 对博客的优化
最近一直在忙科研立项.... 立项书 & 答辩 ... 接下来,将对博客进行优化... (1) 依据书来学习的[需要大量截图],将用微软的 OneNote 写笔记,然后打包成pdf,上传到我的 ...
- 关于kail的远程连接
昨天开始学关于网络攻防的一下知识,虚拟机的镜像用的是kail,对自己造成了很多不适应的地方,有点自闭了. 最近会和大家分享一些关于kail的问题或者说网络攻防方面.这次就说一下kail的远程服务. k ...
- 【OpenCV】轮廓的特征矩Moment
opencv中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩. class Moments { public: ...... // 空间矩 double m00, m10, m01, m20, m ...
- vue router 报错: Uncaught (in promise) NavigationDuplicated {_name:""NavigationDuplicated"... 的解决方法
参考资料:https://blog.csdn.net/zy21131437/article/details/99548983
- centos7 的system
1.vim /etc/systemd/system/alertmanager.service [Unit] Description=Alertmanager After=network-online. ...