首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

mybatis在插入的时候,获取插入主键报错 T_T解决办法

2012-03-07 
mybatis在插入的时候,获取插入主键报错 T_T这是配置XML codeinsert idinsert parameterTypecom.imad

mybatis在插入的时候,获取插入主键报错 T_T
这是配置

XML code
<insert id="insert" parameterType="com.imad.po.UserInfo" useGeneratedKeys="true" keyProperty="uId">    insert into tbl_UserInfo(uUserName,uPassword)    values(#{uUserName},#{uPassword})</insert>



数据库中的表是
SQL code
create table tbl_UserInfo(    uId int primary key auto_increment,    uUserName varchar(255),    uPassword varchar(255));


如果去掉
XML code
useGeneratedKeys="true" keyProperty="uId"

没有任何问题,将【uId】,换成了【uID】也不会报错

但是加上的话,会报错。。。差了半天没有找到原因
Java code
Exception in thread "AWT-EventQueue-0" org.springframework.jdbc.BadSqlGrammarException: Error getting generated key or setting result to parameter object. Cause: java.sql.SQLException: Column 'null' not found.; bad SQL grammar []; nested exception is java.sql.SQLException: Column 'null' not found.    at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:98)    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:346)    at $Proxy3.insert(Unknown Source)    at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:231)    at com.imad.dao.UserInfoDAO.insert(UserInfoDAO.java:71)    at com.imad.service.UserInfoService.insert(UserInfoService.java:56)    at com.imad.ui.ExRegister.doActionOnBtnNextClicked(ExRegister.java:159)    at com.imad.ui.ExRegister.access$2(ExRegister.java:146)    at com.imad.ui.ExRegister$3.mouseClicked(ExRegister.java:110)    at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)    at java.awt.Component.processMouseEvent(Unknown Source)    at javax.swing.JComponent.processMouseEvent(Unknown Source)    at java.awt.Component.processEvent(Unknown Source)    at java.awt.Container.processEvent(Unknown Source)    at java.awt.Component.dispatchEventImpl(Unknown Source)    at java.awt.Container.dispatchEventImpl(Unknown Source)    at java.awt.Component.dispatchEvent(Unknown Source)    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)    at java.awt.Container.dispatchEventImpl(Unknown Source)    at java.awt.Window.dispatchEventImpl(Unknown Source)    at java.awt.Component.dispatchEvent(Unknown Source)    at java.awt.EventQueue.dispatchEvent(Unknown Source)    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)    at java.awt.EventDispatchThread.run(Unknown Source)Caused by: java.sql.SQLException: Column 'null' not found.    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)    at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:961)    at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:2422)    at org.apache.ibatis.type.IntegerTypeHandler.getNullableResult(IntegerTypeHandler.java:17)    at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:29)    at org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator.processAfter(Jdbc3KeyGenerator.java:50)    at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:26)    at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:51)    at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:29)    at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:88)    at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:43)    at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:121)    at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:110)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)    at java.lang.reflect.Method.invoke(Unknown Source)    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:338)    ... 28 more 




MODEL中有setter个getter啊,自动生成的T_T,
完全搞不懂他那个“Column "null" not found”


实在是不知道怎么办了。。。T_T
求帮助

[解决办法]
<insert id="insert" parameterType="com.imad.po.UserInfo" useGeneratedKeys="true" keyProperty="uId">
insert into tbl_UserInfo(uUserName,uPassword)
values(#uUserName#,#uPassword#)
</insert>
不好意思,应该是这样的。
[解决办法]
可能是你对象uID属性定义的问题,貌似他自动生成的set,get方法和mybatis认识的不一样,你对象uID定义成uId试试。

热点排行