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>
分享到:
相关推荐
标题 "ibatis-sqlmap-2.3.4.741-sources.zip_4 3 2 1_ibatis-sqlm_ibatis-s" 暗示了这是一个关于iBATIS SQLMap的源码包,版本号为2.3.4.741,可能是一个增强或修改后的版本,具有特定的优化和改进。描述中提到了针对...
如果您的项目之前使用的是1.x版本的DataMapper,升级到2.0版本时需要注意以下几点: - **更新依赖**:确保使用最新的2.0版本的jar文件。 - **配置调整**:检查并更新XML配置文件,因为新版本可能引入了一些新的元素...
从iBATIS 1.x版本升级到2.0时,需要注意以下几点: 1. **评估升级必要性**:检查新版本的功能改进是否符合项目需求。 2. **转换XML配置文件**:由于版本之间的变化,可能需要调整原有的XML映射文件。 3. **使用新的...
- **百度百科ibatis介绍:** 提供了关于ibatis的基本概念和发展历程的概述。 - **开源中国社区互动讨论:** 在这里可以找到有关ibatis的技术讨论和问题解答。 - **Ibatis官方网站:** 官方网站提供了最新版本的文档...
Ibatis 的核心知识点主要包括以下几个方面: 1. **SQL Map XML 映射文件** SQL Map XML 映射文件是Ibatis的核心组成部分,它定义了数据库操作的映射规则。例如,`<sqlMap>` 元素可以包含多个 `<select>`、`...
在IT领域,SQLMap是一个非常著名的自动化工具,主要用于...以上内容是关于“SQLMap API编程”的详细知识点,涵盖了从基础概念到高级应用的多个层面,对于IT专业人士尤其是安全领域的人来说,这些都是极其有价值的技能。
此外,还应注意以下几点: - 当使用分组字段时,所有的增删改操作SQL中都需要包含该字段,并且建议将其放在SQL语句的左侧,以提高性能。 - 对于后台管理系统中对前台表进行操作的情况,需要特别注意缓存的一致性...
### 自动生成SqlMap知识点 #### 一、简介 在软件开发过程中,特别是在处理数据库与Java对象映射时,经常会遇到繁琐的手动编写SQL映射文件(如`SqlMap.xml`)的问题。为了提高开发效率并减少错误,可以利用工具或...
文档中可能会涵盖以下几个关键知识点: 1. **概念理解**:首先,文档会解释iBATIS的基本理念,包括什么是映射器(Mapper)、动态SQL、事务管理等核心概念,以及它们如何协同工作以简化数据库操作。 2. **SqlMap...
对于iBATIS,通常需要添加`ibatis-sqlmap.jar`、`ibatis-dao.jar`和`ibatis-common.jar`等几个核心JAR包。而对于Spring,则需要添加其核心库以及其他必要的模块。 2. **配置Spring**:接下来,需要在Spring的配置...
3. **SqlSessionFactory与SqlSession**:`SqlSessionFactory`是Ibatis的主要入口点,用于创建`SqlSession`对象,它是执行数据库操作的接口。`SqlSession`提供了执行SQL语句和获取结果集的方法。 4. **参数绑定与...
在源码剖析中,我们可以深入理解以下几个关键知识点: 1. **SqlMapConfig.xml配置文件**:这是iBATIS的核心配置文件,包含了数据源、事务管理器、SQL Map的引用等信息。通过对这个文件的理解,可以掌握如何设置...
`SqlMapClientBuilder` 是用来构建 `SqlMapClient` 对象的,它是 Ibatis 的主要入口点,负责执行 SQL 映射文件中的查询和更新操作。`SqlMapClient` 提供了一系列方法,如 `insert()`, `update()`, `delete()`, 和 `...
通过对 Spring 宠物店项目的分析,我们可以看到 Ibatis 在实际应用中的几个关键点: 1. **领域模型与映射文件**:定义了 Java 对象与数据库表之间的映射关系。 2. **配置文件**:管理 SQL 映射文件的位置。 3. **DAO...
本知识点主要聚焦于如何生成Ibatis的Dao(数据访问对象)类,以及相关的实体类(Entity)和SQL映射文件(sqlMap)。下面我们将详细介绍这个过程。 首先,Ibatis Dao的生成通常涉及到几个关键步骤: 1. **配置文件*...
《ibatis开发指南》概述与知识点详解 ibatis,一种半自动化的ORM(对象关系映射)框架,相较于全面封装数据库结构的“一站式”ORM解决方案如Hibernate和Apache OJB,ibatis提供了一种更为灵活的数据库操作方式。...
在 iBATIS 的基础知识点中,主要包括以下几个方面: 1. SqlMapClient:这是 iBATIS 的主要接口,用于执行 SQL 映射和批量处理。例如,queryForObject 方法用于获取单个对象,queryForMap 用于获取 Map 结果等。 2....
此外,描述还提到了一个关键点:如果对SQLMap的XML文件进行了修改,应该在保存时正确地格式化文件。这样做是因为组件会通过检测XML文件的修改时间来判断是否需要重新加载,格式化的文件能确保修改时间发生变化,从而...