Java执行存储过程
2024-09-27 14:02:10
1、JDBC调用存储过程: CallableStatement
/**
*p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替
*其余地方写法固定
*/
CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");
/**
*告诉JDBC,这些个参数,哪些是输出参数,输出参数的类型用java.sql.Types来指定
*下面的意思是,第3个?和第4个?是输出参数,类型是INTEGER的
*Types后面具体写什么类型,得看你的存储过程参数怎么定义的
*/
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.INTEGER);
/**
*在我这里第1个?和第2个?是输入参数,第3个是输出参数,第4个既输入又输出
*下面是设置他们的值,第一个设为3,第二个设为4,第4个设置为5
*没设第3个,因为它是输出参数
*/
cstmt.setInt(1, 3);
cstmt.setInt(2, 4);
cstmt.setInt(4, 5);
//执行
cstmt.execute();
//把第3个参数的值当成int类型拿出来
int three = cstmt.getInt(3);
System.out.println(three);
//把第4个参数的值当成int类型拿出来
int four = cstmt.getInt(4);
System.out.println(four);
//用完别忘给人家关了,后开的先关
cstmt.close();
conn.close();
2、JdbcTemplate()调用存储过程
getJdbcTemplate().execute(new ConnectionCallback() {
@Override
public Object doInConnection(Connection con) throws SQLException,
DataAccessException {
CallableStatement prepareCall = con.prepareCall("{call update "
+ "(?)}");
prepareCall.setString(1, num);
prepareCall.execute();
return null;
} });
最新文章
- 淘宝(阿里百川)手机客户端开发日记第十四篇 jsp提交含有上传控件表单乱码问题
- linux下打包文件或文件夹
- lua module环境探秘
- mysql学习笔记 第八天
- sqlserver 行转列 语文,数学,物理,化学
- Struts2_使用 Filter 作为控制器的 MVC 应用
- HDOJ 1856 More is better
- IIS发布报错
- 【windows核心编程】线程局部存储TLS
- Objective-c 数据类型
- SPOJ PGCD(莫比乌斯反演)
- 基于 socket.io, 简单实现多平台类似你猜我画 socket 数据传输
- sns社交系统ThinkSNS+ 更新至V0.8.2,新增圈子功能
- CSS3动画效果之transition
- 高通QCC3026蓝牙音频芯片处理器介绍
- pythonのdjango 信号
- Android为TV端助力 集成第三方播放器,实现全屏播放
- NLog类库使用探索——详解配置
- jupyter 快捷键
- 创建表时,主键 USING BTREE、USING HASH 的含义(待补充)
热门文章
- Get和Post区别,EncType提交数据的格式详解——转自他人博客的
- linux程序分析工具介绍(一)—-”/proc”
- 错误提示”void is an invalid type for the variable“
- 将BufferedImage转换为InputStream,亲测可用
- PHP迭代器 Iterator
- Jquery 全局错误处理
- appium (五)desired_caps参数
- Azure 进阶攻略 | 上云后的系统,「门禁」制度又该如何实现?
- SQL:获取语句执行时间2
- framework7滑动删除列表触发chrome 报错解决办法