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【四、存储过程的使用】的更多相关文章

  1. MySQL学习笔记(四)—存储过程

    一.概述      存储过程是数据库定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程可以避免开发人员重复的编写相同的SQL语句,而且存储过程是在MySq ...

  2. MYSQL数据库学习十四 存储过程和函数的操作

    14.1 为什么使用存储过程和函数 一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句. 存储过程和函数的优点: 允许标准组件式编程,提高了S ...

  3. MySQL 基础四 存储过程

    -- 定义存储过程 DELIMITER // CREATE PROCEDURE query_student2() BEGIN SELECT * FROM student; END // DELIMIT ...

  4. MySQL之视图、触发器、事务、存储过程、函数

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  5. MySQL之视图、触发器、事务、存储过程、函数 流程控制

    MySQL之视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 MySQL这个软件想将数据处理的所有事情,能够在mysql这个层面上全部 ...

  6. day43 数据库学习egon的博客 视图、触发器、事务、存储过程、函数

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  7. mysql视图 触发器 事物 函数 存储过程

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  8. mysql:视图,触发器,事务,存储过程,函数。

    一  视图 1 什么是视图:视图其实就是通过查询得到一张表并且保存下来,就是一张虚拟的表,并非真实存在,比如我们将两个表在终端通过(inner join)内链接起来,那么我们得到的这个表就叫做视图,其 ...

  9. Informix存储过程

    一.存储过程概述 存储过程是一个用户定义的函数,由存储过程语句(SPL) 和一组SQL语句组成,以可以执行代码形式存储在数据库中,和表.视图.索引等一样,是数据库的一种对象. 存储过程语言SPL(St ...

  10. mysql八:视图、触发器、事务、存储过程、函数

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

随机推荐

  1. coreDNS一直处于创建中解决

    https://blog.csdn.net/gsying1474/article/details/53256599 执行: [root@lab1 coredns]# kubectl delete -f ...

  2. Linux 查看修改SWAP大小

    1  查看swap 空间大小(总计):     # free -m          默认单位为k, -m 单位为M                total       used       fre ...

  3. python之理解装饰器

    装饰器是修改其他函数的函数.好处是可以让你的函数更简洁. 一步步理解这个概念: 一.一切皆对象. def hi(name="yasoob"): return "hi &q ...

  4. Fabric Raft机制理解

    为了不被无缘无故甩锅锅,这个我要好好理解下.

  5. python中的with语句

    https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/index.html

  6. javascript的一些有用函数记录,不断更新。。。

    addLoadEvent函数: 众所周知,html文档加载完后会立即执行一个onload函数.但是onload函数只能包含一个被执行的函数,也就是你需要在加载完文档后执行的一个自己的函数.在实际中ht ...

  7. django进阶版2

    目录 批量插入数据 自定义分页器 创建多表关系的3种方法 全自动 全手动 半自动 form组件 如何渲染页面 第一种方式 第二种方式 第三种方式 如何显示错误信息 forms组件钩子函数 局部钩子 全 ...

  8. 201803-3 URL映射

    问题描述 URL 映射是诸如 Django.Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件.对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 ...

  9. Ruby Rails学习中:Sass 和 Asset Pipeline,布局中的链接(Rails路由,具名路由),用户注册: 第一步

    接上篇: 一.Sass 和 Asset Pipeline Rails 中最有用的功能之一是 Asset Pipeline, 它极大地简化了静态资源文件(CSS.JavaScript 和图像)的生成和管 ...

  10. python基础知识0-3

    一.根据用户输入内容输出其权限 # 根据用户输入内容打印其权限    # FYT --> 超级管理员 # eric --> 普通管理员 # tony,rain --> 业务主管 # ...