0 0

初学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个答案 按时间排序 按投票排序

0 0

采纳的答案

代码中:

String str = "./com/ibatis/sample/sqlMapConfig.xml";  


数据库配置文件中:
<sqlMap resource="com/ibatis/sample/sqlMapConfig.xml" />  

这两个文件怎么是一样的, 你的代码中的应该是你的数据库配置文件的路径吧!

2008年11月07日 12:02
0 0

请确认你的

String str = "./com/ibatis/sample/sqlMapConfig.xml";   

路径是正确的!试着改为
 
String str = "com/ibatis/sample/sqlMapConfig.xml"; 

2008年11月07日 11:57
0 0

//smc.startTransaction();  
             Dept d = new Dept();  
             d.setDname("aaaa");  
             d.setLoc("bbbb");  
             smc.insert("insertDept", d); //掉了参数  
             System.out.print(d.getDname());  
             //smc.commitTransaction();  



掉了参数d

2008年11月07日 11:33

相关推荐

    struts+ibatis登录

    Struts和iBatis是两个在Java Web开发中广泛应用的框架。Struts作为一个MVC(Model-View-Controller)框架,主要用于控制...这个实例是一个很好的学习起点,可以帮助初学者理解MVC架构和数据库操作在实际应用中的运用。

    一个完整的oracle+ibatis小项目

    6. **异常处理**:在实际开发中,你可能会遇到各种数据库操作异常,如 SQL 注入、空指针异常等。了解如何正确捕获并处理这些异常是项目稳定运行的保障。 7. **最佳实践**:项目中可能包含了关于代码组织、命名规范...

    ibatis-sqlmaps-2_cn

    《ibatis-sqlmaps-2_cn》是一本专注于介绍IBATIS框架的中文教程,非常适合初学者和有经验的开发者进行深入学习。IBATIS,作为一个轻量级的持久层框架,它为Java应用程序提供了数据库操作的支持,尤其在处理SQL映射...

    Ibatis文档

    在使用Ibatis过程中,可能会遇到如SqlSession关闭、空指针、未找到Mapped Statement等异常,理解这些异常的含义和解决方法对于调试和优化代码至关重要。 总结,Ibatis文档涵盖了从基本配置到高级特性的方方面面,...

    ibatis 开发指南

    10. **异常处理与错误排查**:介绍在使用iBatis过程中可能遇到的常见错误及其解决方法,帮助开发者快速定位并修复问题。 通过学习《iBatis 开发指南》,开发者不仅可以掌握iBatis的基本用法,还能深入了解其内在...

    基于IBATIS框架发布包、标准化开发安装实施

    标题中的“基于IBATIS框架发布包、标准化开发安装实施”揭示...总的来说,这篇博客可能是一个全面的指南,涵盖了从项目初始化到部署实施的全过程,对于初学者或者需要了解IBATIS框架的开发者来说,具有很高的参考价值。

    学员信息管理系统(Ibaits实现后台,struts支持)

    异常处理能确保程序在遇到错误时仍能优雅地运行;日志记录则有助于开发者追踪和调试问题。 总的来说,"学员信息管理系统(iBatis实现后台,Struts支持)"项目是一个全面展示Java Web开发技术的实例,涵盖了数据库...

    电力电子课程网站

    2. **iBatis框架**:了解XML配置文件或注解方式的SQL映射,学习动态SQL,以及如何处理数据访问异常。 3. **Spring框架**:研究依赖注入(DI)和控制反转(IOC),掌握AOP(面向切面编程)的应用,如日志记录、权限...

    上传三个新手练手的项目,简单,包含很多知识点

    此外,可能会涉及到Struts2与其他技术如Hibernate或iBatis的集成,以及权限控制和异常处理等。 通过这三个项目,初学者可以全面了解和掌握Java Web开发的基本流程,包括但不限于以下知识点: 1. Java基础:包括...

    easyui以及Springmvc使用笔记

    在初学EasyUI时,可能会遇到以下问题: 1. **组件的引入与引用**:首先,你需要在HTML文件中引入EasyUI的CSS和JavaScript文件。不正确或遗漏这些文件可能导致样式或功能缺失。 2. **DOM选择器的使用**:EasyUI依赖...

    MyBatis.zip

    5. **异常处理**:在处理数据库操作时,可能会遇到各种异常,如空指针、数据不存在等,需要适当地捕获和处理。 通过以上步骤,我们完成了SpringBoot与MyBatis的基本整合。对于初学者来说,理解这些概念和步骤至关...

    java基础知识点67条

    - **500 Internal Server Error**: 表示服务器遇到了意外的情况,无法完成请求。这种情况通常是由于服务器端的配置错误或者程序内部错误导致。 #### 2. JSP与XML文件处理 - 在JSP中修改XML文件后,如果要使更改生效...

Global site tag (gtag.js) - Google Analytics