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;
}

最新文章

  1. Linux上设置memcached自启动
  2. C#中REF和OUT的区别
  3. [转]使用Oracle SQL Developer 17410 提示无法从套接字获取更多数据如何解决
  4. python环境中运行程序
  5. 二分搜索法(转载自vanezkw)
  6. ocp 1Z0-042 1-60题解析
  7. MySQL SQL优化之字符串索引隐式转换
  8. C#函数式程序设计之函数、委托和Lambda表达式
  9. 如何设置自适应当前浏览器高度的div块
  10. LINUX 笔记-wget命令
  11. 配置 RIPv1 和 RIPv2
  12. centos服务器如何监控访问ip,并将非法ip通过防火墙禁用
  13. virtualbox 设置centos7 双网卡上网
  14. HDFS配置参数及优化之实战经验(Linux hdfs)
  15. 2、CentOS下编译安装Python2.7.6(转)
  16. TensorFlow:检查显卡支持哪个版本的CUDA
  17. [原创]K8Cscan插件之Weblogic漏洞扫描&amp;通用GetShell Exploit
  18. Linux补充
  19. 20175330 实验一 《Java开发环境的熟悉》实验报告
  20. 网址,域名,IP,主机名的区别

热门文章

  1. RabbitMQ学习之:(六)Direct Exchange (转贴+我的评论)
  2. Python--多任务(多进程,多线程,协程)
  3. Pycharm 编辑器快捷键
  4. Java集合(4):未获支持的操作及UnsupportedOperationException
  5. deepin终端下载速度超慢解决方案
  6. 【计算机视觉】Vibe Vibe+
  7. C#ModBus Tcp
  8. Android ConstraintLayout 说明和例子
  9. mysq的慢查询日志
  10. 「java.util.concurrent并发包」之 ThreadPoolExecutor