`
x98zero
  • 浏览: 108796 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于iBATIS的sqlmap的几点说明

阅读更多
1.对于数据库设计DATE类型,如果我们要要求返回带时间的格式时间"yyyy-MM-dd HH:mm:ss" 那么我们的 
<result column="TBSJ" property="tbsj" jdbcType="DATETIME" />


中"jdbcType"必须为"DATETIME",否则将返回"yyyy-MM-dd" 格式;

2.对于输入参数

<result column="TBR" property="tbr" jdbcType="VARCHAR" nullValue="" />


我们可以指定"nullValue",当数据库没有值时,可以使用的默认值,但是有时我们不愿意指定默认值,那么我们该怎么班呢?对于 jdbcType="DATE" 不会报错,但是他会返回null,如果引用的客户端没有进行处理,那么很可能报nullpoint的错误;

3.对于输入的"parameterClass",如果为空值,同样会弹出一些错误,解决的方法就是采用动态的参数设置
 <dynamic>
        <isNotEmpty property="tznr" close=",">
                 TZNR = #tznr:VARCHAR#
        </isNotEmpty>
 </dynamic>


才可以避免这个问题

4.当我们在 sqlMap的"resultMap"类型与代码里面的转换类型不一致时,他会部报任何错误,而是只有一个返回null的错误,有时很难查找这样的问题,所以,当你感到莫名其妙的时候,请一定回头看看你的类型是否匹配;

5.我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。

有些是预先生成(pre-generate)主键的,如Oracle和PostgreSQL;有些是事后生成(post-generate)主键的,如MySQL和SQL Server。但是不管是哪种方式,我们都可以用iBATIS的节点来获取语句所产生的主键。

例子如下:
  
   <!-- Oracle SEQUENCE Example using .NET 1.1 System.Data.OracleClient -->  
    <insert id="insertProduct-ORACLE" parameterClass="product">  
        <selectKey resultClass="int" type="pre" keyProperty="id" >  
            SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL  
        </selectKey>  
        insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values(#id#,#description#)  
    </insert>  
      
    <!-- Microsoft SQL Server IDENTITY Column Example -->  
    <insert id="insertProduct-MS-SQL" parameterClass="product">  
        insert into PRODUCT (PRD_DESCRIPTION)  
        values (#description#)  
        <selectKey resultClass="int" type="post" keyProperty="id" >  
            select @@IDENTITY as value  
        </selectKey>  
    </insert>  
     
    <!-- MySQL Example -->  
    <insert id="insertProduct-MYSQL" parameterClass="product">  
        insert into PRODUCT (PRD_DESCRIPTION)  
        values (#description#)  
        <selectKey resultClass="int" type="post" keyProperty="id" >  
            select LAST_INSERT_ID() as value  
        </selectKey>  
    </insert>  
分享到:
评论
1 楼 luyuwww 2008-07-14  
     

相关推荐

    ibatis-sqlmap-2.3.4.741-sources.zip_4 3 2 1_ibatis-sqlm_ibatis-s

    标题 "ibatis-sqlmap-2.3.4.741-sources.zip_4 3 2 1_ibatis-sqlm_ibatis-s" 暗示了这是一个关于iBATIS SQLMap的源码包,版本号为2.3.4.741,可能是一个增强或修改后的版本,具有特定的优化和改进。描述中提到了针对...

    ibatis-sqlMap

    如果您的项目之前使用的是1.x版本的DataMapper,升级到2.0版本时需要注意以下几点: - **更新依赖**:确保使用最新的2.0版本的jar文件。 - **配置调整**:检查并更新XML配置文件,因为新版本可能引入了一些新的元素...

    ibatis文档

    从iBATIS 1.x版本升级到2.0时,需要注意以下几点: 1. **评估升级必要性**:检查新版本的功能改进是否符合项目需求。 2. **转换XML配置文件**:由于版本之间的变化,可能需要调整原有的XML映射文件。 3. **使用新的...

    Ibatis框架的核心知识点

    Ibatis 的核心知识点主要包括以下几个方面: 1. **SQL Map XML 映射文件** SQL Map XML 映射文件是Ibatis的核心组成部分,它定义了数据库操作的映射规则。例如,`&lt;sqlMap&gt;` 元素可以包含多个 `&lt;select&gt;`、`...

    SQLMap API编程

    在IT领域,SQLMap是一个非常著名的自动化工具,主要用于...以上内容是关于“SQLMap API编程”的详细知识点,涵盖了从基础概念到高级应用的多个层面,对于IT专业人士尤其是安全领域的人来说,这些都是极其有价值的技能。

    ibatis与memchaced使用说明

    此外,还应注意以下几点: - 当使用分组字段时,所有的增删改操作SQL中都需要包含该字段,并且建议将其放在SQL语句的左侧,以提高性能。 - 对于后台管理系统中对前台表进行操作的情况,需要特别注意缓存的一致性...

    自动生成SqlMap

    ### 自动生成SqlMap知识点 #### 一、简介 在软件开发过程中,特别是在处理数据库与Java对象映射时,经常会遇到繁琐的手动编写SQL映射文件(如`SqlMap.xml`)的问题。为了提高开发效率并减少错误,可以利用工具或...

    iBATIS 2 文档

    文档中可能会涵盖以下几个关键知识点: 1. **概念理解**:首先,文档会解释iBATIS的基本理念,包括什么是映射器(Mapper)、动态SQL、事务管理等核心概念,以及它们如何协同工作以简化数据库操作。 2. **SqlMap...

    Spring与iBATIS的集成

    对于iBATIS,通常需要添加`ibatis-sqlmap.jar`、`ibatis-dao.jar`和`ibatis-common.jar`等几个核心JAR包。而对于Spring,则需要添加其核心库以及其他必要的模块。 2. **配置Spring**:接下来,需要在Spring的配置...

    ibatis+oracle实例

    3. **SqlSessionFactory与SqlSession**:`SqlSessionFactory`是Ibatis的主要入口点,用于创建`SqlSession`对象,它是执行数据库操作的接口。`SqlSession`提供了执行SQL语句和获取结果集的方法。 4. **参数绑定与...

    iBATIS框架源码剖析源码

    在源码剖析中,我们可以深入理解以下几个关键知识点: 1. **SqlMapConfig.xml配置文件**:这是iBATIS的核心配置文件,包含了数据源、事务管理器、SQL Map的引用等信息。通过对这个文件的理解,可以掌握如何设置...

    Ibatis开发实例

    通过对 Spring 宠物店项目的分析,我们可以看到 Ibatis 在实际应用中的几个关键点: 1. **领域模型与映射文件**:定义了 Java 对象与数据库表之间的映射关系。 2. **配置文件**:管理 SQL 映射文件的位置。 3. **DAO...

    生成ibatis Dao

    本知识点主要聚焦于如何生成Ibatis的Dao(数据访问对象)类,以及相关的实体类(Entity)和SQL映射文件(sqlMap)。下面我们将详细介绍这个过程。 首先,Ibatis Dao的生成通常涉及到几个关键步骤: 1. **配置文件*...

    ibatis教程 入门教程

    在 iBATIS 的基础知识点中,主要包括以下几个方面: 1. SqlMapClient:这是 iBATIS 的主要接口,用于执行 SQL 映射和批量处理。例如,queryForObject 方法用于获取单个对象,queryForMap 用于获取 Map 结果等。 2....

    ibatis配置文件自动加载组件

    此外,描述还提到了一个关键点:如果对SQLMap的XML文件进行了修改,应该在保存时正确地格式化文件。这样做是因为组件会通过检测XML文件的修改时间来判断是否需要重新加载,格式化的文件能确保修改时间发生变化,从而...

Global site tag (gtag.js) - Google Analytics