-
初学ibatis遇到的一些异常15
java文件:
package com.ibatis.sample; import java.io.Reader; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; import com.ibatis.sqlmap.engine.builder.xml.XMLSqlSource; public class Test { public void insertTest() { SqlMapClient smc = null; try { String str = "./com/ibatis/sample/sqlMapConfig.xml"; Reader reader = Resources.getResourceAsReader(str); smc = SqlMapClientBuilder.buildSqlMapClient(reader); //smc.startTransaction(); Dept d = new Dept(); d.setDname("aaaa"); d.setLoc("bbbb"); smc.insert("insertDept"); System.out.print(d.getDname()); //smc.commitTransaction(); } catch (Exception e) { e.printStackTrace(); } finally { try{ //smc.endTransaction(); }catch (Exception e) { e.printStackTrace(); } } } public static void main(String[] args){ Test t=new Test(); t.insertTest(); } }
数据库配置:<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.0.35:1521:orcl" /> <property name="JDBC.Username" value="scott" /> <property name="JDBC.Password" value="tiger" /> <property name="Pool.MaxmumActiveConnections" value="10"/> <property name="Pool.MaxmumIdleConnections" value="5"/> <property name="Pool.MaxmumCheckoutTime" value="120000"/> <property name="Pool.TimeToWait" value="500" /> <property name="Pool.PingQuery"" value="select 1 from ACCOUNT" /> <property name="Pool.PingEnabled" value="false" /> <property name="Pool.PingConnectionsOlderThan" value= "1" /> <property name="Pool.PingConnectionsNotUsedFor" value= "1" /> </dataSource> </transactionManager> <sqlMap resource="com/ibatis/sample/sqlMapConfig.xml" /> </sqlMapConfig>
sqlMap 文件:<?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="Dept"> <typeAlias alias="dept" type="com.ibatis.sample.Dept" /> <select id="getDept" parameterClass="java.lang.Long" resultClass="com.ibatis.sample.Dept"> <![CDATA[select dname, loc from Dept where deptno = #deptno# ]]> </select> <update id="updateDept" parameterClass="com.ibatis.sample.Dept"> <![CDATA[update Dept set dname=#dname#, loc=#loc# where deptno = #deptno# ]]> </update> <insert id="insertDept" parameterClass="com.ibatis.sample.Dept"> insert into Dept ( dname, loc) values ( #dname#, #loc# ) </insert> <delete id="deleteDept" parameterClass="java.lang.Long"> delete from Dept where deptno = #deptno# </delete> </sqlMap>
最后老提示:
com.ibatis.sqlmap.client.SqlMapException: There is no statement named insertDept in this SqlMap.
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedStatement(SqlMapExecutorDelegate.java:231)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:367)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:86)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:62)
at com.ibatis.sample.Test.insertTest(Test.java:22)
at com.ibatis.sample.Test.main(Test.java:38)
问题补充:
写上“d”,还是一样的异常
There is no statement named insertDept in this SqlMap.2008年11月07日 11:27
3个答案 按时间排序 按投票排序
-
采纳的答案
代码中:
String str = "./com/ibatis/sample/sqlMapConfig.xml";
数据库配置文件中:<sqlMap resource="com/ibatis/sample/sqlMapConfig.xml" />
这两个文件怎么是一样的, 你的代码中的应该是你的数据库配置文件的路径吧!2008年11月07日 12:02
-
请确认你的
String str = "./com/ibatis/sample/sqlMapConfig.xml";
路径是正确的!试着改为
String str = "com/ibatis/sample/sqlMapConfig.xml";
2008年11月07日 11:57
-
//smc.startTransaction(); Dept d = new Dept(); d.setDname("aaaa"); d.setLoc("bbbb"); smc.insert("insertDept", d); //掉了参数 System.out.print(d.getDname()); //smc.commitTransaction();
掉了参数d2008年11月07日 11:33
相关推荐
Struts和iBatis是两个在Java Web开发中广泛应用的框架。Struts作为一个MVC(Model-View-Controller)框架,主要用于控制...这个实例是一个很好的学习起点,可以帮助初学者理解MVC架构和数据库操作在实际应用中的运用。
6. **异常处理**:在实际开发中,你可能会遇到各种数据库操作异常,如 SQL 注入、空指针异常等。了解如何正确捕获并处理这些异常是项目稳定运行的保障。 7. **最佳实践**:项目中可能包含了关于代码组织、命名规范...
《ibatis-sqlmaps-2_cn》是一本专注于介绍IBATIS框架的中文教程,非常适合初学者和有经验的开发者进行深入学习。IBATIS,作为一个轻量级的持久层框架,它为Java应用程序提供了数据库操作的支持,尤其在处理SQL映射...
在使用Ibatis过程中,可能会遇到如SqlSession关闭、空指针、未找到Mapped Statement等异常,理解这些异常的含义和解决方法对于调试和优化代码至关重要。 总结,Ibatis文档涵盖了从基本配置到高级特性的方方面面,...
10. **异常处理与错误排查**:介绍在使用iBatis过程中可能遇到的常见错误及其解决方法,帮助开发者快速定位并修复问题。 通过学习《iBatis 开发指南》,开发者不仅可以掌握iBatis的基本用法,还能深入了解其内在...
标题中的“基于IBATIS框架发布包、标准化开发安装实施”揭示...总的来说,这篇博客可能是一个全面的指南,涵盖了从项目初始化到部署实施的全过程,对于初学者或者需要了解IBATIS框架的开发者来说,具有很高的参考价值。
异常处理能确保程序在遇到错误时仍能优雅地运行;日志记录则有助于开发者追踪和调试问题。 总的来说,"学员信息管理系统(iBatis实现后台,Struts支持)"项目是一个全面展示Java Web开发技术的实例,涵盖了数据库...
2. **iBatis框架**:了解XML配置文件或注解方式的SQL映射,学习动态SQL,以及如何处理数据访问异常。 3. **Spring框架**:研究依赖注入(DI)和控制反转(IOC),掌握AOP(面向切面编程)的应用,如日志记录、权限...
此外,可能会涉及到Struts2与其他技术如Hibernate或iBatis的集成,以及权限控制和异常处理等。 通过这三个项目,初学者可以全面了解和掌握Java Web开发的基本流程,包括但不限于以下知识点: 1. Java基础:包括...
在初学EasyUI时,可能会遇到以下问题: 1. **组件的引入与引用**:首先,你需要在HTML文件中引入EasyUI的CSS和JavaScript文件。不正确或遗漏这些文件可能导致样式或功能缺失。 2. **DOM选择器的使用**:EasyUI依赖...
5. **异常处理**:在处理数据库操作时,可能会遇到各种异常,如空指针、数据不存在等,需要适当地捕获和处理。 通过以上步骤,我们完成了SpringBoot与MyBatis的基本整合。对于初学者来说,理解这些概念和步骤至关...
- **500 Internal Server Error**: 表示服务器遇到了意外的情况,无法完成请求。这种情况通常是由于服务器端的配置错误或者程序内部错误导致。 #### 2. JSP与XML文件处理 - 在JSP中修改XML文件后,如果要使更改生效...