jsp学习

来源:互联网 发布:unity3d场景制作 编辑:程序博客网 时间:2024/06/07 03:48
java.sql.SQLException: Wrong number of parameters: expected 0, was given 1 Query: SELECT * FROM user_info p,t_address a WHERE p.aid=a.aid AND p.pid='?' Parameters: [1]
at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:320)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:349)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:210)
at cn.itcast.jdbc.TxQueryRunner.query(TxQueryRunner.java:23)
at cn.itcast.test.TxQueryRunnerTest.testQuery6(TxQueryRunnerTest.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
在看传智播客的视频进行学习,然后就遇到了这个错误,初学者才知道报错的地方在这里,百度的时候说是参数传值的数目错了,我看着我的代码,觉得没有错,就是一个问号,一个参数啊,分明对应,但是看了几遍错误提示,突然意识到错误提示的意思是希望得到0个参数,却传了一个参数,然后把1去掉果然没有报错了,但这不是我想要的结果啊,于是我看了看SQL语句,是不是问号那里错了,于是把‘?’改成单独的问号?就对了,开心,记录下。
public void testQuery6() throws SQLException{
String sql = "SELECT * FROM user_info p,t_address a WHERE p.aid=a.aid AND p.pid='?'";
QueryRunner qr = new TxQueryRunner();
/*
* 得到Map
*/
Map map = qr.query(sql, new MapHandler(),"1");
/*
* 把Map中部分数据封装到Person中
*/
Person p = CommonUtils.toBean(map, Person.class);
/*
*把Map中部分数据封装到Address中
*/
Address addr = CommonUtils.toBean(map, Address.class);
/*
* 建立两个实体的关系
*/
p.setAddress(addr);
System.out.println(p);
}