关于prepareStatement的参数问题

cat_Honey 2008-06-15 02:17:53
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)
...全文
782 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bybsky 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cat_Honey 的回复:]
问题 解决,,多谢
[/Quote]
怎么解决的呢,能分享下吗
cat_Honey 2008-06-15
  • 打赏
  • 举报
回复
问题 解决,,多谢
cat_Honey 2008-06-15
  • 打赏
  • 举报
回复
谢谢害虫的提醒,可是接下来又出现这样的异常,
这个程序弄的晕头转向
问题行:
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)
zhj92lxs 2008-06-15
  • 打赏
  • 举报
回复
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 直间加一个空格,不然报错
cydp007 2008-06-15
  • 打赏
  • 举报
回复
args[0]是运行参数..

就是在你运行的时候后面带的参数..

你的java.lang.NumberFormatException 是因为 你的args[0]是 test_all 不能格式化成Number

所以有问题了..


你写一个数字进去就好了..把test_all 改成数字.

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧