JavaJDBC【四、存储过程的使用】
2024-09-05 10:20:50
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;
}
最新文章
- Linux上设置memcached自启动
- C#中REF和OUT的区别
- [转]使用Oracle SQL Developer 17410 提示无法从套接字获取更多数据如何解决
- python环境中运行程序
- 二分搜索法(转载自vanezkw)
- ocp 1Z0-042 1-60题解析
- MySQL SQL优化之字符串索引隐式转换
- C#函数式程序设计之函数、委托和Lambda表达式
- 如何设置自适应当前浏览器高度的div块
- LINUX 笔记-wget命令
- 配置 RIPv1 和 RIPv2
- centos服务器如何监控访问ip,并将非法ip通过防火墙禁用
- virtualbox 设置centos7 双网卡上网
- HDFS配置参数及优化之实战经验(Linux hdfs)
- 2、CentOS下编译安装Python2.7.6(转)
- TensorFlow:检查显卡支持哪个版本的CUDA
- [原创]K8Cscan插件之Weblogic漏洞扫描&;通用GetShell Exploit
- Linux补充
- 20175330 实验一 《Java开发环境的熟悉》实验报告
- 网址,域名,IP,主机名的区别
热门文章
- RabbitMQ学习之:(六)Direct Exchange (转贴+我的评论)
- Python--多任务(多进程,多线程,协程)
- Pycharm 编辑器快捷键
- Java集合(4):未获支持的操作及UnsupportedOperationException
- deepin终端下载速度超慢解决方案
- 【计算机视觉】Vibe Vibe+
- C#ModBus Tcp
- Android ConstraintLayout 说明和例子
- mysq的慢查询日志
- 「java.util.concurrent并发包」之 ThreadPoolExecutor