JAVA调用ORACLE存储过程

最近在做数据迁移,发现执行时间虽然能在存储过程中调用所有方法,但总归有些不习惯,写java程序进行调用;

中间有在网上搜罗各种方法,在此就不一一列举,下面叙述总体执行步骤。

最终的结果是把项目打成jar包,另建bat文件进行调用,以便没有安装eclipse或者对java程序不熟悉的人进行使用;

当然,结果可能不符合所有的项目,可以根据这个为基础进行修改;

第一步:新建java项目,写调用代码(注意:拷贝oracle的jar包到项目里面)

代码如下:

package callProcedure;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Scanner;

public class CallProcedure {

//    String driver = "Oracle.jdbc.driver.OracleDriver";
//    String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    public Connection getConnection (String strUrl,String username,String password){
        System.out.println("getConnection start");
        Connection connection = null;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            connection = DriverManager.getConnection(strUrl,username,password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        System.out.println("getConnection end");
        return connection;
    }
    public void execSql(Connection connection,String sql){
        System.out.println("execSql Start");
        CallableStatement callableStatement = null;
        try {
            callableStatement = connection.prepareCall("{ call "+sql+"}");
            callableStatement.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            try {
                callableStatement.close();
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
        }
        System.out.println("execSql end");
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = scanner.nextLine();
        System.out.println("请输入密码:");
        String password = scanner.nextLine();
        System.out.println("请输入IP地址:端口号:数据库名 例:127.0.0.1:1521:ORCL:");
        String address = scanner.nextLine();
        System.out.println("请输入调用存储过程");
        String sql = scanner.nextLine();
        CallProcedure callProcedure = new CallProcedure();
        
//        String username = "dm";
//        String password = "dm";
//        String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
//        String sql = "test1.test";
        String strUrl = "jdbc:oracle:thin:@"+address;
        Connection connection = callProcedure.getConnection(strUrl, username, password);
        callProcedure.execSql(connection, sql);
    }
}

第二步:导出jar包

右键项目==》export ==》Runnable JAR file ==》指定导出jar包位置(如果在项目中引用别的项目的jar包,在选择第三个选项"Copy required libraries into a ...")

第四步:新建txt文件

文件内容如下:

java -jar C:\Users\Administrator\Desktop\存储过程调用\call.jar

注意:把文件路径修改为你导出jar包所在路径

现在的cmd窗口如果报错将会一闪就不见了,如果加入以下代码

cmd /k dir

则如果报错窗口就停留在哪里了。

第五步:修改txt后缀名为bat

然后双击bat文件,就能查看效果了  ^_^~~~

posted @ 2015-06-17 16:18  小小小和尚  阅读(916)  评论(0编辑  收藏  举报
访问博主空间