`
bevis.cn
  • 浏览: 149993 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

iBatis报”no statement“的错误

阅读更多
今天在iBatis里遇到找不到statement的错误:
com.ibatis.sqlmap.client.SqlMapException: There is no statement named Employee.insertEmployee in this SqlMap.
可是我仔细检查了一下我的
employee的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="Employee">
	<typeAlias alias="employee" type="com.Employee"/>
	<insert id="insertEmployee" parameterClass="employee">
	INSERT INTO employee(id,created,deleted,firstname)
		VALUES(#id#,#created#,#deleted#,#firstname#)
	</insert>
</sqlMap>


可是我在程序里用
this.getSqlMapClientTemplate().insert("Employee.insertEmployee", employee);


却老是报“no statement named Employee.insertEmployee in this SqlMap.”

后来找了找了半天才发现

原来我在sqlMapConfig的setting配了
useStatementNamespaces="false"
<?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
		maxRequests="32"
		maxSessions="10"
		maxTransactions="5"
		useStatementNamespaces="false"
	/>
	<sqlMap resource="com/Employee.xml"/>
	
</sqlMapConfig>  


当时这一段是网上copy的,所以没有注意到:useStatementNamespaces="false"

结果把useStatementNamespaces="false"改为useStatementNamespaces="true"加上就可以 了

3
0
分享到:
评论
1 楼 zhangygood 2010-01-11  
不错,顶起

相关推荐

Global site tag (gtag.js) - Google Analytics