There is no statement named User.login in this SqlMap异常的处理

ibatIS需要注意的几个地方,否则很容易出错,避免低级错误的方法:

1.TPhonesale.xml中,必须要定义namespace

2.TPhonesale.xml中  parameterClass="java.lang.String"

   resultClass="com.hanpeng.base.model.TPhonesale"

注意:parameterClass是要传的参数;resultClass是返回值类型。这两个值不对触发'无效的对象类型异常'

3.sql-map-config.xml中一定要加入自己编写的TPhonesale.xml引用,否则ibatIS无法找到

<sqlMapConfig>
 <settings cacheModelsEnabled="true" enhancementEnabled="true"
  lazyLoadingEnabled="false" useStatementNamespaces="true" />
   
 <sqlMap resource="com/hanpeng/base/ibatis/COMMON_SqlMap.xml"/>
 <sqlMap resource="com/hanpeng/base/ibatis/Area.xml"/>
 <sqlMap resource="com/hanpeng/base/ibatis/Tconfig.xml"/>
 <sqlMap resource="com/hanpeng/base/ibatis/TPhonesale.xml"/>
</sqlMapConfig>

4.实际中继承SqlMapClientDaoSupport,使用.queryForObject("namespace.id名",object/parameterObject);

public class AreaDAOImpl extends SqlMapClientDaoSupport implements AreaDAO{
	
	public int queryCount(TArea area) {
		
		return (Integer)getSqlMapClientTemplate().queryForObject("TTArea.count", area);
		
	}

	public List queryPage(TArea area) {
		return getSqlMapClientTemplate().queryForList("TTArea.queryPage", area);
	}

}

 

<?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="TTArea">
	<select id="load" parameterClass="com.hanpeng.base.model.TArea" resultClass="com.hanpeng.base.model.TArea">
		SELECT 
			CITY as city ,			
			AREA_CODE as areaCode ,			
			PROVINCE as province 			
		FROM T_AREA
		WHERE
			CITY=#city# 	</select>
	
	<select id="query"  parameterClass="com.hanpeng.base.model.TArea" resultClass="com.hanpeng.base.model.TArea">
	SELECT
			 CITY  as city ,			
			 AREA_CODE  as areaCode ,			
			 PROVINCE  as province 			
	FROM  T_AREA 
	<dynamic prepend="WHERE">
			<isNotEmpty prepend=" AND " property="city">
			CITY =  #city# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="areaCode">
			AREA_CODE =  #areaCode# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="province">
			PROVINCE =  #province# 		</isNotEmpty>
		</dynamic>
	</select>
	
</sqlMap>

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------

 

使用ibatIS,出现了下面的错误

There is no statement named User.login in this SqlMap,网上查询发现,xml中没有定义namespace

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap namespace="TPhonesale">
	<select id="load" parameterClass="java.lang.String" resultClass="com.hanpeng.base.model.TPhonesale">
	SELECT
			 SALE_NUM  as saleNum ,			
			 ORDER_ID  as orderId ,			
			 SUPPLY_ID  as supplyId ,			
			 USER_ID  as userId ,			
			 PHONE  as phone ,			
			 PRICE  as price ,			
			 COST  as cost ,			
			 COMMISSION  as commission ,			
			 STATE  as state ,			
			CREATE_DATE  as createDate ,			
			GET_DATE  as getDate ,			
			FINISH_DATE  as finishDate ,			
			 TYPE_CODE  as typeCode ,			
			 AREA_CODE  as areaCode ,			
			 PRODUCT_NUM  as productNum ,			
			 OPERATORS_CODE  as operatorsCode ,			
			 CHANNEL_NUM  as channelNum ,			
			 COLLECT  as collect ,			
			 EMPLOYEE_NUM  as employeeNum ,			
			 THIRD_CHANNEL_NUM  as thirdChannelNum ,			
			 MAN_STATE  as manState ,			
			 SEND_STATE  as sendState ,			
			 CARD_NUM  as cardNum ,			
			 CARD_PASS  as cardPass ,			
			 PAY_MONEY  as payMoney ,			
			 SUPPLY_FAILED  as supplyFailed ,			
			 CS_NUM  as csNum ,			
			 CS_DEAL_INFO  as csDealInfo 			
	FROM  T_PHONESALE  WHERE SALE_NUM = #saleNum#
	</select>
</sqlMap>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值