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文件,就能查看效果了 ^_^~~~
--别碰!这只是一只小尾巴! →_→ 会掉的!!!