package com.huawei.interview.lym;

import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Types;

public class JdbcTest {

    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       Connection cn = null;

       CallableStatement cstmt = null;   

       try {

           //这里最好不要这么干,因为驱动名写死在程序中了

           Class.forName("com.mysql.jdbc.Driver");

           //实际项目中,这里应用DataSource数据,如果用框架,

           //这个数据源不需要我们编码创建,我们只需Datasource ds = context.lookup()

           //cn = ds.getConnection();        

           cn = DriverManager.getConnection("jdbc:mysql:///test","root","root");

           cstmt = cn.prepareCall("{call insert_Student(?,?,?)}");

           cstmt.registerOutParameter(3,Types.INTEGER);

           cstmt.setString(1, "wangwu");

           cstmt.setInt(2, 25);

           cstmt.execute();

           //get第几个,不同的数据库不一样,建议不写

           System.out.println(cstmt.getString(3));

       } catch (Exception e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       finally

       {

           /*try{cstmt.close();}catch(Exception e){}

           try{cn.close();}catch(Exception e){}*/

           try {

              if(cstmt != null)

                  cstmt.close();

              if(cn != null)             

                  cn.close();

           } catch (SQLException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

       }

    }

  

用JDBC如何调用存储过程的更多相关文章

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

    一. java.sql.*   和  javax.sql.*的包的类结构 |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, p ...

  2. MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程

    虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁 ...

  3. jdbc preparedstatement 调用存储过程的问题

    preparedstatement   是可以执行正常的存储过程 executeQuery() 正常执行 在实际开发中遇到一种问题当 preparedstatement.setMaxRows 设置了这 ...

  4. 初学JDBC,调用存储过程

    在JDBC简单封装的基础上实现 public class UserDao{ public static void testGetUser(String userName) throws Excepti ...

  5. Spring JDBC调用存储过程

    以下示例将演示spring jdbc如何调用存储过程.将通过调用存储过程来读取Student表中的一个可用记录.将传递一个学生ID并获取学生记录信息. 语法: SimpleJdbcCall jdbcC ...

  6. JDBC使用MySQL存储过程错误

    JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedur ...

  7. 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】

    疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...

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

    (1)jdbc执行预处理 PreparedStatment预备语句 eg:String sql="insert into user(id,name,birthday,money) value ...

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

    一.JDBC常用的API深入详解及存储过程的调用 相关链接:Jdbc调用存储过程 1.存储过程(Stored Procedure)的介绍 我们常用的操作数据库语言SQL语句在执行的时候需要先编译,然后 ...

随机推荐

  1. 虚拟机设置成桥接模式x86_openwrt也可以上网

    一.虚拟机桥接设置 1. 2.选择 虚拟机 >>设置 三.ip设置,要在同一网段,能够分配到路由的ip地址 1.主机ip 2.虚拟机中x86_openwrt ip 四.openwrt设置 ...

  2. 管道和FIFO 一

    管道和FIFO   管道(pipe)       管道在Unix及Linux进程间通信是最基础的,很容易理解.管道就像一个自来水管,一端注入水,一端放出水,水只能在一个方向上流动,而不能双向流动.管道 ...

  3. iview-admin打包笔记

    在程序根目录右键打开cmd,输入 npm run build 这时就会进入打包的步骤,打包好之后就会在程序根目录出现一个dist的文件夹,里面有一个index.html文件和另一个dist的文件夹. ...

  4. 在VS2013平台下如何快速解决c++代码内存泄漏问题

    在学习FPS3000人脸关键点定位算法时,发现github上的源码,存在大量的内存泄漏问题,在训练的时发现内存一直在增长,测试的时候也存在内存无法彻底释放的问题. 一直以为是存放模型参数vector& ...

  5. js中replace的用法(两种常用举例,还有好多用法不一一列举)

    1.替换特定字符 <html><body> <script type="text/javascript"> var str="Visi ...

  6. String intern()方法详解

    执行以下代码 String a1=new String("abc");       String a2=new String("abc");       Sys ...

  7. H-Index II @python

    Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize ...

  8. js如何判断小数点后有几位

    <script> var n=3.143423423;alert(n.toString().split(".")[1].length); </script> ...

  9. java的super和this关键字用法总结

    ------super关键字------                 super用途:在子类中访问超类“被隐藏的成员变量(无论是否静态)和静态方法”以及“被重写的实例方法”.这里的超类必须是“直接 ...

  10. guess_age

    age_shanshan = 18count = 3num = 0while num < count: age = int(input("age:")) if age == ...