MyBatis异常Parameter 'title' not found

异常内容如下:

Cause: org.apache.ibatis.binding.BindingException: Parameter 'title' not found. Available parameters are [1, 0, param1, param2]
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:150)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:137)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:46)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43)
	at $Proxy0.insert2(Unknown Source)
	at demo.Demo1.main(Demo1.java:75)
Caused by: org.apache.ibatis.binding.BindingException: Parameter 'title' not found. Available parameters are [1, 0, param1, param2]
	at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:160)
	at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:41)
	at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:113)
	at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:73)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:77)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:58)
	at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:71)
	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:44)
	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:100)
	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:148)
	... 5 more

 

 

 

其实,我在刚开始做第一个demo的时候没有发现,做的是查询。可是,在我做插入和更新的时候就有问题了。弄了好久也米有弄明白,最终,在j8中看到一个人问问题,加了qq,请教了,才可以呢。言归正传,开始解决问题:

先把配置文件和Mapper类贴出来:

Mapper.xml文件:

<insert id="insert1" parameterType="model.Blog" useGeneratedKeys="true" keyProperty="id">
	insert into Blog (title, content) values (#{title}, #{content})
</insert>

 Mapper类:

int insert2(String title, String content);

 

 

这么一看,参数不错啊。对,就是这个让我一直没有想到解决的办法。最后,那位仁兄一指点,如果醍醐灌顶般。我的parameterType="model.Blog",而我的方法中的参数却是 insert2(String title, String content);所以就出现了这个问题。解决的办法就是在Mapper中这样定义:int insert1(Blog blog);可以了。

 

 

另外,在做insert,update,delete操作的时候必须手动提交事务:session.commit();因为这些时候会开启事务,而Mybatis默认是不自动提交的,所以,得手动提交。在做查询的时候,数据库是不会开启事务的,所以不需要提交

 

 下面是我建的一个公众帐号,可以关注一下哦,谢谢

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值