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. thinkPHP5 引入模板

    有三种方法:第一种: 直接使用 return view(); 助手函数第二种: use think\View; class Admin extends View 见下第三种: use think\Co ...

  2. 【shell】sed命令

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed ...

  3. 比较全面的MySQL优化参考(转)

    上篇:) http://imysql.com/2015/05/24/mysql-optimization-reference-1.shtml 下篇:) http://imysql.com/2015/0 ...

  4. 将DataTable 覆盖到 SQL某表(包括表结构及所有数据)

    调用代码: string tableName = "Sheet1"; openFileDlg.ShowDialog(); DataTable dt = GeneralFun.Fil ...

  5. 开发框架-移动开发平台: mPaaS

    ylbtech-开发框架-移动开发平台: mPaaS 移动开发平台 mPaaSmPaaS(Mobile PaaS)为 App 开发.测试.运营及运维提供云到端的一站式解决方案,能有效降低技术门槛.减少 ...

  6. Shell 定时发送邮件检查网站脚本/邮件正文

    #!/bin/bash ############################################################## # File Name: check_http.s ...

  7. Linux防火墙(Firewalls)

    结构关系图 查看这两个防火墙文件 # cat /etc/hosts.deny # cat /etc/hosts.allow 查看Linux中防火墙的状态 某个服务是否能由tcpwraps来进行控制关键 ...

  8. phpexcel导入数据出现PHPExcel_RichText Object解决办法

    在导入excel的时候会出现异常情况,有的问题出现PHPExcel_RichText object,错误代码如下 PHPExcel_RichText Object ( [_richTextElemen ...

  9. javascript创建对象之动态原型模式(五)

    function Human(name, sex) { this.name = name; this.sex = sex; if (typeof this.say != "function& ...

  10. js的数组操作相关(BigTree*)

    JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // ...