用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

java调用Oracle存储过程

2015-02-07 作者: java源代码大全举报

[java]代码库

/**
 首先在数据库中创建存储过程(如:pl_pro),代码如下:
 create or replace procedure pl_emp(pl_name varchar2,salary number) is
begin
  --根据用户名去修改职工工资
  update emp set sal=salary where ename=pl_name;
end pl_pro;
/
*/
package testOraclePLSQL;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 利用JDBC调用Oracle存储过程
 * 
 * @author Nilux
 * 
 */
public class GetPLSQL {

    // test
    public static void main(String[] args) {
        getConn();
        execPLSQL();
    }

    static Connection conn;

    // 获得连接
    public static void getConn() {
        FileInputStream fis = null;
        // 读取Properties的配置
        try {
            fis = new FileInputStream(new File(
                    "src/testOraclePLSQL/db.properties"));
            Properties properties = new Properties();
            properties.load(fis);
            String url = properties.getProperty("db.url");
            String user = properties.getProperty("db.user");
            String password = properties.getProperty("db.password");
            // 加载Oracle驱动
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            // 得到数据库连接
            conn = DriverManager.getConnection(url, user, password);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

    // ................................//
    public static void execPLSQL() {
        CallableStatement cs = null;
        try {
            String sql = "{call pl_emp(?,?)}";
            // 创建CallableStatement
            cs = conn.prepareCall(sql);
            // 给?赋相应的值
            cs.setString(1, "SMITH");
            cs.setInt(2, 1800);
            // 执行
            cs.execute();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    // 关闭连接
                    cs.close();
                    conn.close();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
        }
    }
}

//源代码片段来自云代码http://yuncode.net
			


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...