import day614.JdbcUtil;public class TestPs { public static void main(String[] args) throws SQLException {
 int id=Integer.parseInt(args[0]);//请问这句话该怎么理解,输入参数该输入什么,为什么运行时候会异常呢
Connection con = null;
                PreparedStatement ps=null; 
ResultSet rs = null;
con = JdbcUtil.getConnection();
                String sql="select*from test_all" 
 + "where id>?";
 ps=con.prepareStatement(sql); 
 ps.setInt(1,id);
 rs=ps.executeQuery(sql);
 StringBuffer sb=new StringBuffer();
 if(rs!=null){ 
 while(rs.next()){ 
 sb.append("id="+rs.getInt(1)+" ");
 sb.append("name="+rs.getString(2)+"\n"); 
 } 
 }
 System.out.println(sb.toString());
 
JdbcUtil.release(rs, ps, con); }}
输入"test_all"时候的异常:
Exception in thread "main" java.lang.NumberFormatException: For input string: "test_all"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at day614.TestPs.main(TestPs.java:10)

解决方案 »

  1.   

    args[0]是运行参数..就是在你运行的时候后面带的参数..你的java.lang.NumberFormatException   是因为  你的args[0]是 test_all  不能格式化成Number所以有问题了..
    你写一个数字进去就好了..把test_all 改成数字.
      

  2.   

    int id=Integer.parseInt(args[0]);//请问这句话该怎么理解,输入参数该输入什么,为什么运行时候会异常呢 
    用java命令执行是
    java TestPs  1
    1 就是你要传递的参数,你可以在后面加空格写多个例如java TestPs 1 2 3
    String sql="select * from test_all"
    + "where id>?"; 
    这句要在select 和 * 和 from 直间加一个空格,不然报错
      

  3.   

    谢谢害虫的提醒,可是接下来又出现这样的异常,
    这个程序弄的晕头转向
    问题行:
    rs=ps.executeQuery(sql); 是上面的什么数据出错了吗.....          Exception in thread "main" java.sql.SQLException: ORA-03115: unsupported network datatype or representation at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:623)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:181)
    at oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:420)
    at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:896)
    at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:452)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:986)
    at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1125)
    at day614.TestPs.main(TestPs.java:49)