当前位置: 代码迷 >> SQL >> There is no statement named User.login in this SqlMap. 让小弟我很莫名
  详细解决方案

There is no statement named User.login in this SqlMap. 让小弟我很莫名

热度:214   发布时间:2016-05-05 14:09:20.0
There is no statement named User.login in this SqlMap. 让我很莫名
com.ibatis.sqlmap.client.SqlMapException: There is no statement named User.login in this SqlMap.


SqlMapConfig.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfig          PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"          "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig>	<settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true"		maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="true" />	<sqlMap resource="com/lhq/prj/bms/po/xml/User.xml" /></sqlMapConfig>


UserDao.java 代码如下:
package com.lhq.prj.bms.dao.impl;import java.util.List;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;import com.lhq.prj.bms.core.Page;import com.lhq.prj.bms.dao.IUserDao;import com.lhq.prj.bms.po.User;/** * 用户管理持久层实现 * @author Administrator * */public class UserDao extends SqlMapClientDaoSupport implements IUserDao {	public Integer deleteById(Integer userId) {		// TODO Auto-generated method stub		return getSqlMapClientTemplate().delete("User.deleteById", userId);	}	public int findByCount(Page page) {		// TODO Auto-generated method stub		return (Integer) getSqlMapClientTemplate().queryForObject("User.findByCount", page);	}		public List findByExample(User user) {		// TODO Auto-generated method stub		return getSqlMapClientTemplate().queryForList("User.findByExample", user);	}	public Object saveUser(User user) {		// TODO Auto-generated method stub		return getSqlMapClientTemplate().insert("User.save", user);	}	public Integer update(User user) throws Exception {		// TODO Auto-generated method stub		return getSqlMapClientTemplate().update("User.update", user);	}	public List findByPage(Page page) {		// TODO Auto-generated method stub		return getSqlMapClientTemplate().queryForList("User.findByPage", page);	}	public User login(User user) {		// TODO Auto-generated method stub		return (User) getSqlMapClientTemplate().queryForObject("User.login", user);	}}


User.xml代码如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap          PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"          "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="User">	<typeAlias alias="user" type="com.lhq.prj.bms.po.User" />	<typeAlias alias="page" type="com.lhq.prj.bms.core.Page" />	<parameterMap class="user" id="pm_user_without_id">		<parameter property="emplName" javaType="string" jdbcType="VARCHAR" />		<parameter property="emplNo" javaType="string" jdbcType="VARCHAR" />		<parameter property="mobilePhone" javaType="string" jdbcType="VARCHAR" />		<parameter property="sex" javaType="string" jdbcType="VARCHAR" />		<parameter property="age" javaType="integer" jdbcType="NUMBER" />		<parameter property="userName" javaType="string" jdbcType="VARCHAR" />		<parameter property="password" javaType="string" jdbcType="VARCHAR" />		<parameter property="companyId" javaType="integer" jdbcType="NUMBER" />		<parameter property="companyName" javaType="string" jdbcType="VARCHAR" />		<parameter property="deptId" javaType="integer" jdbcType="NUMBER" />		<parameter property="deptName" javaType="string" jdbcType="VARCHAR" />		<parameter property="dutyId" javaType="integer" jdbcType="NUMBER" />		<parameter property="dutyName" javaType="string" jdbcType="VARCHAR" />		<parameter property="manager" javaType="boolean" jdbcType="BIT" />		<parameter property="remark" javaType="string" jdbcType="VARCHAR" />	</parameterMap>	<sql id="byUserIdCondition">		<![CDATA[		   userId = #userId:NUMBER#	    ]]>	</sql>	<insert id="save" parameterMap="pm_user_without_id">		<![CDATA[			INSERT INTO t_user 						(emplName,emplNo,mobilePhone,sex,age,userName,password,companyId,companyName,deptId,deptName,dutyId,dutyName,manager,remark) 				 VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)		]]>		<selectKey resultClass="int">			<![CDATA[				SELECT @@IDENTITY AS ID			]]>		</selectKey>	</insert>	<delete id="deleteById" parameterClass="integer">		<![CDATA[			delete t_user		]]>		<dynamic prepend="WHERE">			<include refid="byUserIdCondition" />		</dynamic>	</delete>		<update id="update" parameterClass="user">		<![CDATA[			UPDATE t_user		]]>		<dynamic prepend="SET">			<isNotNull property="emplName" prepend=",">				<![CDATA[					emplName = #emplName:VARCHAR#				]]>			</isNotNull>			<isNotNull property="emplNo" prepend=",">				<![CDATA[					emplNo = #emplNo:VARCHAR#				]]>			</isNotNull>			<isNotNull property="mobilePhone" prepend=",">				<![CDATA[					mobilePhone = #mobilePhone:VARCHAR#				]]>			</isNotNull>			<isNotNull property="sex" prepend=",">				<![CDATA[					sex = #sex:VARCHAR#				]]>			</isNotNull>			<isNotNull property="age" prepend=",">				<![CDATA[					age = #age:NUMBER#				]]>			</isNotNull>			<isNotNull property="userName" prepend=",">				<![CDATA[					userName = #userName:VARCHAR#				]]>			</isNotNull>			<isNotNull property="password" prepend=",">				<![CDATA[					password = #password:VARCHAR#				]]>			</isNotNull>			<isNotNull property="companyId" prepend=",">				<![CDATA[					companyId = #companyId:NUMBER#				]]>			</isNotNull>			<isNotNull property="companyName" prepend=",">				<![CDATA[					companyName = #companyName:VARCHAR#				]]>			</isNotNull>			<isNotNull property="deptId" prepend=",">				<![CDATA[					deptId = #deptId:NUMBER#				]]>			</isNotNull>			<isNotNull property="deptName" prepend=",">				<![CDATA[					deptName = #deptName:VARCHAR#				]]>			</isNotNull>			<isNotNull property="dutyId" prepend=",">				<![CDATA[					dutyId = #dutyId:NUMBER#				]]>			</isNotNull>			<isNotNull property="dutyName" prepend=",">				<![CDATA[					dutyName = #dutyName:VARCHAR#				]]>			</isNotNull>			<isNotNull property="manager" prepend=",">				<![CDATA[					manager = #manager:BIT#				]]>			</isNotNull>			<isNotNull property="remark" prepend=",">				<![CDATA[					remark = #remark:VARCHAR#				]]>			</isNotNull>		</dynamic>		<dynamic prepend="WHERE">			<include refid="byUserIdCondition" />		</dynamic>	</update>	<sql id="findUserByPageCondition">		<isNotEmpty property="conditions">			<iterate property="conditions" open="(" close=")" conjunction="OR">				<![CDATA[					upper(emplName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'				    OR upper(emplNo) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'    				    OR upper(mobilePhone) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'    				    OR upper(sex) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'    				    OR upper(userName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'    				    OR upper(companyName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'    				    OR upper(deptName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'    				    OR upper(dutyName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'    				    OR upper(remark) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%' 		    	]]>			</iterate>		</isNotEmpty>	</sql>		<select id="findByPage" parameterClass="page" resultClass="user">		<![CDATA[			SELECT * FROM t_user 		]]>		<dynamic prepend="WHERE">			<include refid="findUserByPageCondition" />		</dynamic>		<![CDATA[		]]>		<dynamic prepend="AND">			<include refid="findUserByPageCondition" />		</dynamic>		<![CDATA[			ORDER BY userId limit $start$,$limit$		]]>	</select>	<select id="findByCount" parameterClass="page" resultClass="int">		<![CDATA[			SELECT COUNT(*) FROM t_user 		]]>		<dynamic prepend="WHERE">			<include refid="findUserByPageCondition" />		</dynamic>	</select>	<select id="login" parameterClass="user" resultClass="user">		<![CDATA[			SELECT * FROM t_user 					WHERE userName = #userName:VARCHAR# and password = #password:VARCHAR#		]]>	</select>		<select id="findByExample" parameterClass="user" resultClass="user">		<![CDATA[			SELECT * FROM t_user 		]]>		<dynamic prepend="WHERE">			<isNotNull property="userId" prepend="AND">				userId = #userId:NUMBER#			</isNotNull>			<isNotNull property="emplName" prepend="AND">				emplName LIKE '%' + #emplName:VARCHAR# + '%'			</isNotNull>			<isNotNull property="emplNo" prepend="AND">				emplNo LIKE '%' + #emplNo:VARCHAR# + '%'			</isNotNull>			<isNotNull property="mobilePhone" prepend="AND">				mobilePhone LIKE '%' + #mobilePhone:VARCHAR# + '%'			</isNotNull>			<isNotNull property="sex" prepend="AND">				sex = #sex:VARCHAR#			</isNotNull>			<isNotNull property="age" prepend="AND">				age = #sex:NUMBER#			</isNotNull>			<isNotNull property="userName" prepend="AND">				userName = #userName:VARCHAR#			</isNotNull>			<isNotNull property="password" prepend="AND">				password = #password:VARCHAR#			</isNotNull>			<isNotNull property="companyId" prepend="AND">				companyId = #companyId:NUMBER#			</isNotNull>			<isNotNull property="companyName" prepend="AND">				companyName LIKE '%' + #companyName:VARCHAR# + '%'			</isNotNull>			<isNotNull property="deptId" prepend="AND">				deptId = #deptId:NUMBER#			</isNotNull>			<isNotNull property="deptName" prepend="AND">				deptName LIKE '%' + #deptName:VARCHAR# + '%'			</isNotNull>			<isNotNull property="dutyId" prepend="AND">				dutyId = #dutyId:NUMBER#			</isNotNull>			<isNotNull property="dutyName" prepend="AND">				dutyName LIKE '%' + #dutyName:VARCHAR# + '%'			</isNotNull>			<isNotNull property="manager" prepend="AND">				manager = #manager:BIT#			</isNotNull>		</dynamic>	</select></sqlMap>



错误原因:User.xml中没有定义命名空间
<sqlMap namespace="User">
  相关解决方案