最近在做数据迁移,发现执行时间虽然能在存储过程中调用所有方法,但总归有些不习惯,写java程序进行调用;
中间有在网上搜罗各种方法,在此就不一一列举,下面叙述总体执行步骤。
最终的结果是把项目打成jar包,另建bat文件进行调用,以便没有安装eclipse或者对java程序不熟悉的人进行使用;
当然,结果可能不符合所有的项目,可以根据这个为基础进行修改;
第一步:新建java项目,写调用代码(注意:拷贝oracle的jar包到项目里面)
代码如下:
packagecallProcedure;importjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.Scanner;public classCallProcedure {//String driver = "Oracle.jdbc.driver.OracleDriver";//String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
publicConnection 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");returnconnection;
}public voidexecSql(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 voidmain(String[] args) {
Scanner scanner= newScanner(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= newCallProcedure();//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文件,就能查看效果了 ^_^~~~