使用CallableStatement接口调用存储过程

直接上下代码:

 1 package com.learn.jdbc.chap07;
 2
 3 import java.sql.CallableStatement;
 4 import java.sql.Connection;
 5 import java.sql.Types;
 6
 7 import com.learn.jdbc.util.DbUtil;
 8
 9 /**
10  * 使用CallableStatement接口调用存储过程
11  * @author Administrator
12  *
13  */
14 public class Demo1 {
15     private static DbUtil dbUtil=new DbUtil();
16     /**
17      * 调用存储过程,通过id查询name
18      * @param id
19      * @return
20      * @throws Exception
21      */
22     private static String getNameById(int id) throws Exception{
23         Connection con = dbUtil.getCon();
24         String sql="{CALL sp_getNameById(?,?)}";
25         CallableStatement cstmt = con.prepareCall(sql);
26         cstmt.setInt(1, id);
27         cstmt.registerOutParameter(2, Types.VARCHAR);
28         cstmt.execute();
29         String name = cstmt.getString("nM");// nM: 数据库新建存储过程时name对应的命名
30         dbUtil.close(cstmt, con);
31
32         return name;
33     }
34
35     public static void main(String[] args) throws Exception {
36         System.out.println("名称是: "+getNameById(1));
37     }
38 }
时间: 2024-08-03 22:13:51

使用CallableStatement接口调用存储过程的相关文章

Java基础系列12:使用CallableStatement接口调用数据库中的存储过程

前言:以下内容均以MySQL中的存储过程举例说明 一 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是

webservice接口调用存储过程返回失败

poka.cashman.timer.service.impl.PdaOperateServiceImpl - Method Name: cashBoxOutOrIn; cbInfo:JN00201503170;;0;;;;;;902000000|JN00201503170;;0;;;;;;902000000|JN00201503170;;0;;;;;;902000000|JN00201503170;;0;;;;;;9020000002015-03-18 10:37:19,863 [WebCon

【转】java调用存储过程和函数

一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. CallableStatement 接口继承自PreparedStatement 接口.所以CallableStatement 接口包含有Statement 接口和PreparedStatement 接口定义的全部方法,但是并不是所有的方法我们都要使用,主要使用的方法有这样几个: CallableStatement 常用方法: 返回类型 方法签名 说明 boolean execute() 执行 SQL 语句

jdbc中的Statement对象和Preparedstatement对象的区别,以及通过jdbc操作调用存储过程

一. java.sql.*   和  javax.sql.*的包的类结构 |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, properties):  连接数据库的方法. url: 连接数据库的URL URL语法: jdbc协议:数据库子协议://主机:端口/数据库 user: 数据库的用户名 password: 数据库用户密码 |- DriverManager类: 驱动管理器类,用于管理所有注册的驱动程序 |-regis

Java数据库连接——JDBC调用存储过程,事务管理和高级应用

阅读目录 一.JDBC常用的API深入详解及存储过程的调用1.存储过程(Stored Procedure)的介绍2.JDBC调用无参存储过程3.JDBC调用含输入参数存储过程4.JDBC调用含输出参数存储过程二.JDBC的事务管理1.JDBC实现事务管理2.通过代码实现事物的管理三.数据库连接池(dbcp.c3p0)1.dbcp使用步骤2.c3p0使用步骤3.连接池总结四.JDBC的替代产品(Hibernate.Mybatis)1.Commons-dbutils 2.Hibernate简介3.M

JDBC系列:(4)使用CablleStatement调用存储过程

执行sql语句的接口 接口 作用 Statement接口 用于执行静态的sql语句 PreparedStatement接口 用于执行预编译sql语句 CallableStatement接口 用于执行存储过程的sql语句(call xxx) 1.调用带有输入参数的存储过程 package com.rk.db.d_callable; import java.sql.Connection; import java.sql.CallableStatement; import java.sql.Resul

mybatis调用存储过程

最近在研究mybatis调用存储过程,发表一下自己的学习心得 其中最好用的就是通过map传值,结果还用这个map接收,因为map是一个非常强大的东西,有时候存储过程要操作多张表. 比如说:往多张表插入数据,用JavaBean的方式就很难做到,参数对应多个实体类不好解决,用map就能完美的解决这个问题. Map<String, Object> map=new HashMap<String, Object>把需要的参数往里面一放,就能很容易解决问题 dao层(dao接口),在dao接口

jdbc执行预处理,批处理,LOB字段处理,调用存储过程

(1)jdbc执行预处理 PreparedStatment预备语句 eg:String sql="insert into user(id,name,birthday,money) values(5,'administrator',?,'1000000')"; PreparedStatement stmt=conn.prepareStatment(sql); stmt.setTimestamp(1,new Timestamp(System.currentTimeMillis())); s

java调用存储过程

这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存储过程为: CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)  AS BEGIN INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2); END T