下面的调用存储过程,执行的时候程序停留了,怎么好像让我输入?哪儿错了,不会,刚学,谢谢import java.sql.*;public class Testpro1 { public static void main(String[] args) {
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:myora1", "scott", "tiger");
CallableStatement c = conn.prepareCall("{call my_sp1(?,?)}");
c.setString(1, "SCOTT");
c.setInt(2, 3000);
c.execute();
c.close();
conn.close();
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
}
}

解决方案 »

  1.   

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver没导入这个类库  就想用啊
      

  2.   

    没抛出异常,在使用jdbc时是要抛出异常的
      

  3.   

    没有错误信息啊,代码执行的时候停住了,控制台Console光标可以移动,可以输入东西,需要点击terminate程序才能终止?晕了,我把try里面改了别的代码,说明能访问数据库啊?import java.sql.*;public class Testproc { public static void main(String[] args) {
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:myora1","scott","tiger");
    Statement s = conn.createStatement();
    ResultSet rs = s.executeQuery("select * from emp");
    while(rs.next()){
    String str = rs.getString("ename");
    System.out.println(str);
    }
    rs.close();
    s.close();
    conn.close();
    }catch(Exception e){
    e.printStackTrace();
    }
    }
    }
    这个能访问到数据库,并输出:
    SMITH
    ALLEN
    WARD
    JONES
    MARTIN
    BLAKE
    CLARK
    SCOTT
    KING
    TURNER
    ADAMS
    JAMES
    FORD
    MILLER咋回事?
      

  4.   

    System.out.println();打印下执行到那停下来了。
    然后自己分析下。
      

  5.   


    import java.sql.*;public class Testproc {    public static void main(String[] args) {
            try{
                Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:myora1", "scott", "tiger");
                CallableStatement c = conn.prepareCall("{call my_sp1(?,?)}");
                System.out.println("1");
                c.setString(1, "SCOTT");
                System.out.println("2");
                c.setInt(2, 3000);
                System.out.println("3");
                c.execute();//到这句停下来了,不知道怎么回事?
                System.out.println("4");
                c.close(); 
                System.out.println("5");
                conn.close();
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }catch(SQLException e){
                e.printStackTrace();
            }
        }
    }
      

  6.   

    把my_sp1这个存储过程贴出来看下有没有什么问题!
      

  7.   

    在网上搜了一下,现在问题解决了,是要在存储过程了显示地提交commit一下,请问为什么要commit一下?
    存储过程里面的dml语句都要手动commit吗?create or replace procedure my_sp1(v_ename varchar2,v_sal number) is
    begin
      update pme set sal=v_sal where ename=v_ename;
      commit; --这里起初没commit
    end;