JDBC PreparedStatement像参数报错的解决方法

  介绍

这篇文章运用简单易懂的例子给大家介绍JDBC PreparedStatement像参数报错的解决方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

/* *   * @说明执行一条查询SQL语句,可以带参数   */公共静态List<对象[]比;excuteQuery (sql字符串、对象[]obj) {   连接康涅狄格州=零;   PreparedStatement psta=零;   ResultSet rs=零;   List<对象[]比;iResult=零;   对象[]objArr=零;   尝试{   康涅狄格州=getConn ();//得到链接   PreparedStatement状态=conn.prepareStatement (sql);   如果(零!=obj) {   for (int i=0;我& lt;objs.length;我+ +){   状态。setObject (i + 1, obj[我]);   }   }   ResultSet ResultSet=state.executeQuery ();//执行查询,返回结果接集合   iResult=new ArrayList<对象[]祝辞();   .getColumnCount int数=resultSet.getMetaData () ();//一共有多少列数据   而(resultSet.next ()) {   objArr=新对象(数);   for (int i=1;我& lt;=计数;我+ +){   objArr [i - 1]=resultSet.getObject(我);//增加到返回的集合中   }   iResult.add (objArr);   }   }捕捉(异常e) {   e.printStackTrace ();   iResult=零;   最后}{   尝试{   如果(rs !=null) {   rs.close ();   }   如果(psta !=null) {   psta.close ();   }   如果(康涅狄格州!=null) {   conn.close ();   }   }捕获异常(e2) {      }   }   返回iResult;   }

后来我输入这样的一个参数进行查询:

公共静态void main (String [] args) {
  对象[]帕拉=new Object [] {“c"};
  List<对象[]比;=excuteQuery列表(“select * from s_user t, t。用户名像& # 39;%,# 63;% & # 39;“para);
  (对象[]o:列表){
  (对象ob: o) {
  system . out。打印(ob +“产生绯闻);
  }
  System.out.println ();
  }
  }

结果报错如下:

java.sql。SQLException异常:参数指标的范围(1比;参数的数量,这是0)。   com.mysql.jdbc.SQLError.createSQLException (SQLError.java: 1056)   com.mysql.jdbc.SQLError.createSQLException (SQLError.java: 957)   com.mysql.jdbc.SQLError.createSQLException (SQLError.java: 927)   com.mysql.jdbc.PreparedStatement.checkBounds (PreparedStatement.java: 3279)   com.mysql.jdbc.PreparedStatement.setInternal (PreparedStatement.java: 3263)   com.mysql.jdbc.PreparedStatement.setString (PreparedStatement.java: 4087)   com.mysql.jdbc.PreparedStatement.setObject (PreparedStatement.java: 3513)   org.apache.commons.dbcp.DelegatingPreparedStatement.setObject (DelegatingPreparedStatement.java: 166)   com.nms.common.db.ConnectionManager.excuteQuery (ConnectionManager.java: 86)   com.nms.common.db.ConnectionManager.main (ConnectionManager.java: 20)   异常的线程“main"java.lang.NullPointerException   在com.nms.common.db.ConnectionManager.main (ConnectionManager.java: 21)

后来才知道,模糊查询时要这样写:

公共静态void main (String [] args) {
  对象[]帕拉=new Object [] {“% c %“};
  List<对象[]比;=excuteQuery列表(“select * from s_user t, t。用户名一样,# 63;“para);
  (对象[]o:列表){
  (对象ob: o) {
  system . out。打印(ob +“产生绯闻);
  }
  System.out.println ();
  }
  }

关于JDBC PreparedStatement像参数报错的解决方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

JDBC PreparedStatement像参数报错的解决方法