就是看出来什么问题,用其他的可以查询,很简单的一下问题:
spring通过dao注入,加入了default-autowire="byName"
<bean id="dao" class="com.ssm.common.CommonDaoImpl"> <property name="sqlMapClient" ref="sqlMapClient"></property> </bean>
<bean id="menuManageService" class="com.ssm.service.MenuManageServiceImpl" scope="prototype"></bean>
ibatis配置文件
<sqlMapConfig> <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" useStatementNamespaces="true" /> <sqlMap resource="com/ssm/pojo/menu.xml" /> </sqlMapConfig>
menu.xml文件
<sqlMap namespace="menu"> <select id="getMax" resultClass="java.lang.String"> select max(menuId) from sys_menu </select> </sqlMap>
com.ssm.service.MenuManageServiceImpl.java
private CommonDao dao;
public String getMaxOrder() throws SQLException { String i = (String) dao.queryObject("menu.getMax", null); return i; }
public void setCommonDao(CommonDao dao) { this.dao = dao; }提示错误是这一行 :
String i = (String) dao.queryObject("menu.getMax", null);
com.ssm.service.MenuManageServiceImpl.getMaxOrder(MenuManageServiceImpl.java:23) com.ssm.action.MenuManageAction.menuMax(MenuManageAction.java:22) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597)
这是我的一个测试代码,我写其他的action没问题,数据库是正常的,如果我注解这一行,这个dao运行也是正常的,蛋痛了。。。
public Object queryObject(String sqlId, Object parameter) throws SQLException { return getSqlMapClient().queryForObject(sqlId, parameter); }
已经搞定了,具体什么原因没找到,但是这一句没有变
<selectid="getMax"resultClass="String">
selectmax(menuId)fromsys_menu
</select>
selectmax(menuId)fromsys_menu
这种要取别名的
selectmax(menuId)
maxId
fromsys_menu
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。