`
flashcloud
  • 浏览: 189155 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

iBatis访问MS Access数据库(*.mdb)时的若干注意事项

阅读更多
因需要处理Access数据库,在考虑持久层方案时,由于效率原因,最终选择iBatis,但在进行可行性方案的试验过程中,碰到几个棘手的问题,导致差点放弃此方案。

1.在运行iBatis的Update时,如果Access表的主键是自增型主键时,即“自动编号 + 长整型 + 递增”型主键,对应的JavaBean的属性值只能是int型,不能设置为long型,否则,会报告“java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]可选的功能未实现”
<update id="updateMsg"  parameterClass="msg">
		update MESSAGE set MESSAGE_TEXT=#text# where MESSAGE_ID=#msgID#
</update>

进一步研究发现,实质上是数据类型不匹配造成的,即Java的int型对应ACCESS的长整型。(长整型 (默认值)保存从 -2,147,483,648 到 2,147,483,647(无小数位)的数字。 4 个字节 )。
看来,是自己的的经验不足了,不过iBatis的错误提示也在些隐晦了,经过源码的跟踪调试,半天才明白是此道理。

2.java的double类型与Access的双精度与单精度匹配

3.Access自动生成主键列在insert后由iBatis通过SqlMap获取的语句:

	<insert id="insertMsg" parameterClass="msg">
		insert into MESSAGE(
		MESSAGE_TEXT,
		PRICE)
		values(
		#text#,
		#price#)
		<selectKey resultClass="int" type="post" keyProperty="msgID" >  
        	select @@IDENTITY as [value]
    	</selectKey>  
 	</insert>


(1).post指明Access采用的提交后生成主键的方式。
(2).msgID是指该表的主键列对应JavaBeans哪个属性。
(3).注意“select @@IDENTITY as [value] ”中的“value”,一定要加中括号,或者换成其他字符,因为value是ACCESS的关键字。由此牵扯出来第4个注意事项

4.在SqlMap文件中,注意sql语句中,列名如果是ACCESS的关键字,可能会引发一些莫名其妙的问题,要么尽量避免采用关键字作为列名,要么将列名用中括号包围的方式解决。
0
0
分享到:
评论
2 楼 谷赛玉 2014-04-16  
我也遇到int和long不匹配的问题了,呵呵
1 楼 say4ever2u 2009-12-28  
呵呵,楼主在用iBatis在访问access的时候是否有事务方面的问题呢  我前段时间用了下 感觉有问题就放弃了  , 现在能记住的就是 添加信息执行insert不成功 也不报任何错误..

相关推荐

    IBatis.net-IBatis.DataAccess.1.9.2/IBatis.DataMapper.1.6.2

    **IBatis.net 框架详解** IBatis.net 是一款流行的开源数据访问框架,它将SQL映射功能与...结合IBatis.DataAccess和IBatis.DataMapper,开发者可以构建出高效、灵活且易于维护的数据访问层,实现与数据库的无缝交互。

    IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2

    标题和描述中提到的"IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2"是针对一个名为IBatisNet的框架的不同组件的版本号。IBatisNet是一个在.NET平台上实现的开源持久层框架,它源于Java...

    IBatis.DataMapper.1.6.2.bin.zip

    - "IBatis.DataAccess.1.9.2.bin.zip":这个文件可能是IBatis的另一个组件DataAccess的1.9.2版本,可能包含与DataMapper协同工作的类库和接口。 - "Ibatis.DataMapper.1.6.2.bin":这是一个单独的1.6.2版本的...

    ibatis-2.3.4.726.jar,ibatis-2.3.0.677.jar,ibatis-2.3.3.720.jar下载

    5. **缓存机制**:为了提高性能,iBATIS引入了缓存机制,可以缓存查询结果,减少不必要的数据库访问。 接下来,我们关注这些版本的区别: - **ibatis-2.3.4.726.jar**:这是iBATIS 2.x系列的较新版本,可能包含了...

    IBatis.DataAccess.1.9.2

    包含IBatis.net 开发所需的Castle.DynamicProxy.dll,IBatisNet.Common.dll,IBatisNet.DataAccess.dll,IBatisNet.Common.dll以及相关配置文件

    ibatis-2.3.0.677.jar

    标题 "ibatis-2.3.0.677.jar" 指向的是一个特定版本的 iBATIS 库,即版本号为 2.3.0.677 的 JAR 文件。iBATIS 是一个开源的 Java 框架,主要用于简化数据库与应用程序之间的交互。它在早期广泛应用于企业级应用开发...

    ibatis-sqlmap-2.3.4.726-sources.jar.zip_birth84v_cutting1v2_ibat

    《深入解析iBatis-SQLMap 2.3.4.726源码》 在Java开发领域,iBatis作为一个优秀的持久层框架,深受广大开发者喜爱。它将SQL语句与Java代码分离,提高了代码的可读性和可维护性。本篇将围绕iBatis-SQLMap 2.3.4.726...

    IBatis.DataAccess.

    IBatis 数据访问组件(DataAccess)是其核心部分,负责数据库的交互。在Web应用程序中,配置IBatis通常涉及在`web.config`文件中设置相关参数,对于Windows应用程序,配置则是在`app.config`文件中进行。 1. **...

    ibatis-2.3.3.720.jar

    ibatis-2.3.3.720.jar

    iBATIS插件及教程+DEMO.rar

    iBATIS插件及教程+DEMO.rar iBATIS插件及教程+DEMO.rar iBATIS插件及教程+DEMO.rar iBATIS插件及教程+DEMO.rar iBATIS插件及教程+DEMO.rar

    Ibatis.Net 的Ibatis.Net.Domain和IBatisNet.Common组件

    Ibatis.Net是一个流行的.NET平台上的持久层框架,它允许开发者将SQL映射到.NET对象,提供了灵活的数据访问层。在给定的压缩包文件中,包含的组件是"Ibatis.Net.Domain"和"IBatisNet.Common",这两个组件是Ibatis.Net...

    01_ibatis教程_准备ibatis环境.zip

    8. **Spring整合Ibatis**(如果涉及):如果项目中使用了Spring框架,需要配置Spring的SqlSessionFactoryBean,实现Ibatis与Spring的集成。 9. **编写测试代码**:创建测试类,使用Ibatis提供的SqlSession对象执行...

    iBATIS插件及教程+DEMO.

    它主要解决了在Java应用程序中数据库操作的问题,通过将SQL语句与Java代码分离,实现了数据访问层(DAO)的简化。iBATIS提供了一个灵活的映射框架,允许开发者在XML或注解中定义SQL语句,使得Java对象和SQL数据库...

    最稳定Ibatis包 ibatis-2.3.0.677.rar

    2.3.0.677是Ibatis的一个重要版本,被誉为“最稳定”的版本,它提供了可靠的性能和稳定性,使得开发人员在处理数据库操作时能够更加放心。 Ibatis的核心理念在于将SQL语句与Java代码分离,通过XML配置文件或注解来...

    ibatis的3个jar包.rar

    3. **ibatis-dao-2.jar**:DAO(Data Access Object)模式是一种常见的数据访问设计模式,Ibatis的DAO库提供了基于Ibatis的DAO实现,方便开发者创建数据库访问层的对象。它提供了一些基础的抽象,使得开发者可以更...

    IBATIS建立的数据库连接

    **安装与配置IBATIS** 1. **下载与导入**: 首先,你需要从官方网站或通过Maven仓库下载IBATIS的JAR文件,并将其添加到项目的类路径中。 2. **创建配置文件**: 在项目中创建`SqlMapConfig.xml`,这是IBATIS的核心...

    iBATIS_DBL-2.1.7.597.zip

    iBATIS_DBL-2.1.7.597.zip 是一个包含了iBATIS数据库层框架的一个特定版本的压缩包。iBATIS是一个开源的Java框架,它简化了数据库和应用程序之间的交互,使得开发者可以将SQL语句直接写在XML配置文件中,避免了直接...

Global site tag (gtag.js) - Google Analytics