ibatis错误汇总

1) 错误:The prefix "context" for element "context:property-placeholder" is not bound.

解决:在文件头中引入:xmlns:context="http://www.springframework.org/schema/context" 即可。

正解例子:

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"

default-autowire="byName">

<context:property-placeholder location="classpath:META-INF/app.properties" />

2) 错误:Cannot convert value of type [org.springframework.jdbc.datasource.DriverManagerDataSource] to required type [com.ibatis.sqlmap.client.SqlMapClient] for property ‘sqlMapClient‘: no matching editors or conversion strategy found

原因:property sqlMapClient 引错了id;一开始ref的不是baikeZhangzishiSqlMapClientReadonly,而是baikeZhangzishiDataSourceReadonly

正解:

<bean id="baikeZhangzishiReadTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate" destroy-method="close">

<property name="sqlMapClient"><ref bean="baikeZhangzishiSqlMapClientReadonly" /></property>

</bean>

<bean id="baikeZhangzishiDataSourceReadonly" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>java:comp/env/mysqlAppsDataSourceReadonly</value>

</property>

</bean>

<bean id="baikeZhangzishiSqlMapClientReadonly" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

<property name="configLocation">

<value>classpath:/ibatis/baikeZhangzishi-sqlmap.xml</value>

</property>

<property name="dataSource" ref="baikeZhangzishiDataSourceReadonly"></property>

</bean>

3)有如下两个错误:

错误1:com.ibatis.sqlmap.client.SqlMapException: There is no statement named MS-APPBAIKEZHANGZISHI-ADDINFO in this SqlMap.

错误2:java.lang.NullPointerException

at com.hudong.apps.baikesurvey.dao.impl.BaikeZhangzishiWriteDAOImpl.addBaikeZhangzishi(BaikeZhangzishiWriteDAOImpl.java:29)

at com.hudong.apps.baikesurvey.dao.test.BaikeZhangzishiDAOTest.testAdd(BaikeZhangzishiDAOTest.java:81)

at org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:163)

分析:从表面上看,这两个错误系属一个错误,都是sqlMap找不到,可能是相关的xml配置找不到,也可能是id错误,也可能是set注入错误;

我犯得错误是set注入错误,所以在做一些底层东西copy的时候一定要注意这些细节,看看id有没有负责后忘了更改,从而导致set注入相关的spring id,还应该注意的是如果原工程使用了高度封装,比如创建一个basedao 存放一些set注入等信息的时候,这时候copy的东西一定要去这个base类中添加相应的模块,比如set注入模块

4)1ibatis错误

com.ibatis.sqlmap.client.SqlMapException: There is no statement named MS-QUERY-TOP-PAGE in this SqlMap.

at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedStatement(SqlMapExecutorDelegate.java:231)

at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:558)

at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)

错误分析:ibatis+spring+jndi+resin使用的使用一定要注意一些配置上面的细节;我这里所犯的错误是因为ibatis配置引用底层sqlxml的时候没有放到sqlMapConfig中;注意jndi的配置不能直接引用ibatis的底层sql文件,必须引用有sqlMapConfig配置的xml文件;

错误如下:

jndi 直接引用sql的xml;

<!--  dataSource readonly -->

......

<bean id="topSqlMapClientReadonly" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

<property name="configLocation">

<value>classpath:/ibatis/com/hudong/apps/baikesurvey/sqlmap/top1000-readonly-sqlmap-mapping.xml</value>

</property>

<property name="dataSource" ref="topDataSourceReadonly"></property>

</bean>

......

正确使用:

<!--  dataSource readonly -->

<bean id="topDataSourceReadonly" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>java:comp/env/mysqlDataSourceReadonly</value>

</property>

</bean>

<bean id="topSqlMapClientReadonly" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

<property name="configLocation">

<value>classpath:/ibatis/baikeSurvey-sqlmap.xml</value>

</property>

<property name="dataSource" ref="topDataSourceReadonly"></property>

</bean>

<bean id="topReadTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate" destroy-method="close">

<property name="sqlMapClient"><ref bean="topSqlMapClientReadonly"/></property>

</bean>

注意ibatis的sqlmap配置,一定要放入sqlMapConfig中;这里还有一点要注意的,那就是useStatementNamespaces命名空间的配置,这里如果设置成了false,那么底层sql配置文件就可以不配置命名空间;如果设置成了true,那么必须配置命名空间,否则也会出现这个错误

<?xml version="1.0" encoding="GB2312"?>

<!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="false" lazyLoadingEnabled="false" maxRequests="3000" maxSessions="3000" maxTransactions="3000" useStatementNamespaces="false"/>

<sqlMap resource="ibatis/com/hudong/apps/baikesurvey/sqlmap/top1000-readonly-sqlmap-mapping.xml"/>

</sqlMapConfig>

命名空间的配置,注意多个sql xml命名空间不能重复;如下:

<sqlMap namespace="topReadSqlMap">

未完待续

ibatis错误汇总

时间: 2024-10-20 00:48:22

ibatis错误汇总的相关文章

Git各种错误汇总

1.github上版本和本地上版本冲突的方法,即提交时会提示如下错误: 解决方法,提交时采用如下代码: git push -u origin master -f 参考链接: http://blog.csdn.net/shiren1118/article/details/7761203 Git各种错误汇总

李洪强iOS开发之OC常见错误汇总

// //  main.m //  16 - 常见错误汇总 // //  Created by vic fan on 16/7/13. //  Copyright © 2016年 李洪强. All rights reserved. // OC的常见错误汇总: 1 @interface ... @end  和 @implementation ..@end 之间不能嵌套 2只有类的声明没有类的实现 3 漏写@end 4 两个类的声明顺序可以打乱,但是类的声明一定要在类的实现前面 5 成员变量没有放在

C#新手常犯的错误汇总

本文所述为C#新手常犯的错误,但是实际上很多有经验的程序员也经常犯这些错误,对此特别整理了一下,供大家参考.具体如下: 1.遍历List的错误 ,比如如下代码: List<String> strList =newList<String> for(int i =0; i<strList.Count; i++) { strList.RemoveAt(i); } 这段代码看上去是删除了所有元素,实际上每次调用RemoveAt方法会导致List元素索引重排,最后导致元素没有完全删除.

Linux错误汇总

Linux错误汇总 一,Linux系统下安装完MySQL,启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with... [[email protected]ost ~]# mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 

Quartus II 中 Verilog 常见警告/错误汇总

Verilog 常见错误汇总 1.Found clock-sensitive change during active clock edge at time <time> on register "<name>" 原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化.而时钟敏感信号是不能在时钟边沿变化的.其后果为导致结果不正确. 措施:编辑vector source file 2.Verilog HD

编程中易犯错误汇总:一个综合案例.md

# 11编程中易犯错误汇总:一个综合案例 在上一篇文章中,我们学习了如何区分好的代码与坏的代码,如何写好代码.所谓光说不练假把式,在这篇文章中,我们就做一件事——一起来写代码.首先,我会先列出问题,然后要求读者自己写一份答案:然后,我会给出我写的代码:最后,我们还会以这个问题为例,讨论编程中常见的错误. ## 1 问题描述 在[这个](http://wiki.openhatch.org/index.php?title=Scrabble_challenge)页面中,有一道Python相关的练习题,

react 报红错误汇总

react  报红错误汇总 一.Uncaught TypeError: Cannot read property 'value' of undefined 未知类型错:无法读取未定义的属性“value” 我的源码: console.log(item.controlAttributeObj.placeholder.value) 错误原因: controlAttributeObj的初始值为{},所以第一次获取 placeholder 为 undefined , undefined 是没有属性的,所以

ibatis错误

盯着看了半天,最后发现xml中少了一段说明话,为什么手贱自己写xml呢 错误信息: Exception in thread "main" java.lang.ExceptionInInitializerErrorCaused by: java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.R

【ios真机调试错误汇总】Could not change executable permissions on the application.

本篇章不再介绍如何真机调试,而是不断汇总真机调试时遇到的错误,记录下来,大家一起学习进步. 错误1:Could not change executable permissions on the application. 这个错误的意思是,同 一个bundle identifier 不能重复用,再通俗点来讲,就是我们真机调试的设备之前已经调试和安装了com.XXX.abc identifier的应用,然后现在又新建了一个项目,为了懒省事,又使用了这个identifier,然后又调试在这台设备上,会