为了账号安全,请及时绑定邮箱和手机立即绑定

executeSeckill测试问题?

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'uesrphone' not found. Available parameters are [seckillId, userphone, param1, param2]


我已经加了@Param可是没用,回去发现之前Dao层中的queryByIdWithSeckill()方法也出了这个问题,在没有写Service层之前都没有出现问题,结果写完后测试发现都不行了。

正在回答

2 回答

真的是打错了!! 真是粗心!

但是新的问题又来了 

@Test
public void executeSeckill() throws Exception {
   long id = 1000;
   long phone = 13877093290L;
   String  md5 = "42d56fec120bf23e3af750569ca017c3";
   SeckillExcution seckillExcution = seckillService.executeSeckill(id,phone,md5);
   logger.info("SeckillExcution={}"+seckillExcution);

输出结果

18:14:52.931  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Creating a new SqlSession

18:14:52.935  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff]

18:14:52.940  [main]  DEBUG o.m.s.t.SpringManagedTransaction -  JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@616ac46a] will be managed by Spring

18:14:52.943  [main]  DEBUG o.s.dao.SeckillDao.reduceNumber -  ==>  Preparing: update seckill set number = number - 1 where seckill_id = ? and start_time <= ? and end_time >= ? and number > 0 

18:14:52.965  [main]  DEBUG o.s.dao.SeckillDao.reduceNumber -  ==> Parameters: 1001(Long), 2016-10-12 18:14:52.923(Timestamp), 2016-10-12 18:14:52.923(Timestamp)

18:14:52.973  [main]  DEBUG o.s.dao.SeckillDao.reduceNumber -  <==    Updates: 1

18:14:52.973  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff]

18:14:52.974  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff] from current transaction

18:14:52.974  [main]  DEBUG o.s.d.S.insertSuccessKilled -  ==>  Preparing: insert ignore into success_killed (seckill_id,user_phone) value (?,?) 

18:14:52.975  [main]  DEBUG o.s.d.S.insertSuccessKilled -  ==> Parameters: 1001(Long), 13877093293(Long)

18:14:52.983  [main]  DEBUG o.s.d.S.insertSuccessKilled -  <==    Updates: 1

18:14:52.983  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff]

18:14:52.984  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff] from current transaction

18:14:52.985  [main]  DEBUG o.s.d.S.queryByIdWithSeckill -  ==>  Preparing: select sk.seckill_id, sk.user_phone, sk.create_time, sk.state, s.seckill_id "seckill.seckill_id", s.name "seckill.name", s.number "seckill.number", s.start_time "seckill.start_time", s.end_time "seckill.end_time", s.create_time "seckill.create_time" from success_killed sk inner join seckill s on sk.seckill_id = s.seckill_id where sk.seckill_id = ? and sk.user_phone = ? 

18:14:52.985  [main]  DEBUG o.s.d.S.queryByIdWithSeckill -  ==> Parameters: 1001(Long), 13877093293(Long)

18:14:53.002  [main]  DEBUG o.s.d.S.queryByIdWithSeckill -  <==      Total: 1

18:14:53.006  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff]

18:14:53.007  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Transaction synchronization committing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff]

18:14:53.007  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff]

18:14:53.007  [main]  DEBUG org.mybatis.spring.SqlSessionUtils -  Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5b3f61ff]

18:14:53.098  [main]  INFO  o.seckill.service.SeckillServiceTest -  SeckillExcution={}org.seckill.dto.SeckillExcution@1672fe87

为什么SeckillExcution ={} 里面没有信息的?

0 回复 有任何疑惑可以回复我~

uesrphone -> userphone,  看看是不是因为单词拼错了的原因

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

executeSeckill测试问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信