1: insert 标签中 传入参入 大写字母必须从第三个字母开始
如:oPeratorDate 则插入报错
2:查询语句
select count(*) from hresb_empmessageinfo where 1=1
返回值 resultClass 必须为 java.lang.Integer 返回String会报错的。
3: $strToint$ 美元符号,可以把变量外面的引号去掉,即可以把字符串转化成整形。
4:#name:VARCHAR#,#age:int#,#startDate:DATE#.#endDate:Date#,#name:CHAR#
##可以对变量进行转化
比较特殊的:#startDate:DATE# 转化为 年月日形式
#.#endDate:Date# 转化为 年月日 时分秒 形式
5:对数据库操作时如果 数据没有任何值会报错,处理方式如下:
<isNotEmpty prepend=""
property="vcMobile">#vcMobile:VARCHAR#</isNotEmpty>
<isEmpty prepend="" property="vcMobile">null</isEmpty>
6:更新时 放置变量没有值可以在第一个参数处放置一个一定有值的参数
update HRESB_OrganInfo
set vcName=#vcName:VARCHAR#
<isNotEmpty prepend="" property="cflag">,cflag=#cflag:CHAR#</isNotEmpty>
<isNotEmpty prepend="" property="operatorDate">,dOperatorDate=#operatorDate:Date#</isNotEmpty>
where nNodeID= $nnodeID$
7:oracle插入时主键自增
<insert id="insertHRLog" parameterClass="com.nstc.HRInterface.model.HnHRLog">
insert into Hn_Hr_Log(ID,RESULT,ERRORINFO,MTYPE,STARTDATE,ENDDATE,RESPONSETIME)
values(Hn_Hr_Log_SEQ.nextval,
<isNotEmpty prepend="" property="result">#result:int#</isNotEmpty>
<isEmpty prepend="" property="result">null</isEmpty>,
<isNotEmpty prepend="" property="errorInfo">#errorInfo:VARCHAR#</isNotEmpty>
<isEmpty prepend="" property="errorInfo">null</isEmpty>,
<isNotEmpty prepend="" property="mtype">#mtype:int#</isNotEmpty>
<isEmpty prepend="" property="mtype">null</isEmpty>,
<isNotEmpty prepend="" property="startDate">#startDate:DATE#</isNotEmpty>
<isEmpty prepend="" property="startDate">null</isEmpty>,
<isNotEmpty prepend="" property="endDate">#endDate:DATE#</isNotEmpty>
<isEmpty prepend="" property="endDate">null</isEmpty>,
<isNotEmpty prepend="" property="responseTime">#responseTime:Date#</isNotEmpty>
<isEmpty prepend="" property="responseTime">null</isEmpty>)
</insert>
8: oracle数据库用ibatis
select id, name from emp
会默认把 id name 转化为大写
需要改成
select id "id",name "name" from emp;
而 sqlserver数据库中
select id, name from emp
id 和 name 都会为小写的。
9: # 和 $的一点差别
1) 用$$ 有点宏替换的意思,就是简单的字符串替换,用相应的值替换$$里的内容,如下列映射:
<select id="users" resultMap="user">select * from a $name$</select>,则在传入参数可以queryForList("users", "where name='张三'");
2)用##则是预编译处理,传入的是什么类型就是什么类型,如下列映射:
<select id="users" resultMap="user">select * from a where a.name=#name#</select>,
你在传入参数时可以queryForList("users", "张三");则生成的sql语句是select * from a where a.name='张三'。
10: 在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作。
使用ibatis的selectKey就可以得到sequence的值,同时也会将值返回。不过对于不同的数据库有不同的操作方式。
对于oracle:
<insert id="insertUser" parameterClass="ibatis.User">
<selectKey resultClass="long" keyProperty="id">
select SEQ_USER_ID.nextval as id from dual
</selectKey>
insert into user
(id,name,password)
values
(#id#,#name#,#password#)
</insert>
该句话执行完之后,传进来的参数User对象DO里的id字段就会被赋值成sequence的值。
使用的时候:
Object newKey = getSqlMapClientTemplate().insert(
"insertUser", user);
分享到:
相关推荐
以上就是Ibatis在实际项目中的一些常见使用案例,通过这些技巧,我们可以更高效地进行数据操作,减少编码工作量,提高代码的可读性和维护性。理解并熟练运用这些案例,将有助于提升你在Java持久层开发中的技能。
- **最佳实践**:总结iBATIS使用过程中的常见问题及解决策略,分享成功经验。 - **综合应用**:通过实例演示iBATIS在复杂项目中的集成与应用,帮助读者将理论知识转化为实践能力。 ### iBATIS.NET QuickStart 除了...
- 故障排查技巧,如日志配置和常见错误分析。 总的来说,这个压缩包提供了一个全面学习iBATIS的资源库,适合对Java Web开发有兴趣,特别是想深入了解iBATIS的开发者。结合理论与实践,通过阅读和动手操作,可以深入...
iBATIS和Spring的集成是企业级应用开发中常见的组合,因为Spring提供了全面的依赖注入和事务管理,而iBATIS则擅长于SQL映射。集成过程通常包括以下几个步骤: 1. 引入相关库:添加iBATIS和Spring的jar包到项目类路径...
此外,还可能包含各种使用技巧、最佳实践以及常见问题的解决方案。 在iBatis 2.0中,SqlMapConfig.xml是整个系统的配置中心,它包含了数据源、事务管理器、SqlMapClient的配置。SqlMap元素则是具体数据库操作的定义...
本文将根据所提供的标题、描述及部分内容,详细阐述在使用iBatis时可能遇到的一些常见错误及其调试技巧。 ### 一、SQL映射文件(sqlMap)中的配置问题 #### 1. **SQL映射文件的正确配置** - **插入语句示例**:当...
#### 一、iBATIS中的LIKE查询技巧 iBATIS是一款优秀的Java持久层框架,它简化了基于SQL的程序编写,避免了程序员手动处理结果集和手工编写SQL语句。在进行数据库查询时,LIKE查询是一种常见的需求,特别是在搜索...
通过本文的学习,我们了解了ibatis的基本使用方法,包括如何编写各种类型的SQL语句,并掌握了动态SQL的相关技巧。这些知识对于初学者来说是非常有用的,能够帮助他们在实际项目中更加灵活地处理数据库操作问题。随着...
描述虽然为空,但根据标题和标签,我们可以推测博主可能在博文中分享了他们对iBatis2的理解和应用经验,可能包括了一些实用技巧或常见问题的解决方案。 标签 "源码" 和 "工具" 提示我们,内容可能包含了源代码示例...
1.4 iBATIS如何解决数据库的常见问题 20 1.4.1 所有权与控制 20 1.4.2 被多个分散的系统访问 21 1.4.3 复杂的键和关系 21 1.4.4 数据模型的去规范化或过度规范化 22 1.4.5 瘦数据模型 23 1.5 小结 24 第2章 iBATIS...
本教程的目标是快速掌握Ibatis的基本使用和高级技巧。 【描述】"看了不会来找我!@"表明这个教程具有很高的实用性和易懂性,作者对教程内容充满信心,承诺读者只要认真学习,就能熟练掌握Ibatis。 【标签】"ibatis...
本学习手册将深入探讨iBatis的核心概念、配置方式以及在实际开发中的应用技巧。 【描述】:“iBatis.rar 学习手册学习手册学习手册各种讲解” 这是一份详尽的iBatis学习资源,包含多方面的讲解,旨在帮助读者全面...
这种技术在网页设计中非常常见,提高了用户体验,但需要注意浏览器兼容性问题。 5. 正则表达式: 正则表达式(Regular Expression)是一种用于模式匹配的字符串处理工具。它用于在文本中查找、替换或提取符合特定...
通过以上介绍,我们可以看到iBatis不仅提供了一种简单的方法来执行常见的数据库操作(如增删改查),而且还支持更复杂的映射和存储过程功能。这对于需要高性能且灵活性的应用程序来说是非常有价值的。
本文将基于作者的初学经验,分享iBATIS的一些核心概念、使用技巧以及学习过程中的常见问题。 首先,理解iBATIS的基本理念至关重要。它是一个基于Java的数据库访问框架,旨在解决对象关系映射(ORM)的问题,使得...
- **iBATIS best practices (iBATIS最佳实践)**: 第十三章总结了一系列使用iBATIS时的最佳实践,这些实践可以帮助开发者避免常见的陷阱,并提高代码的质量和可维护性。 ### 十二、综合应用案例 - **Putting it all...
《iBatis实战》这本书是针对Java开发人员深入理解并应用iBatis...通过阅读《iBatis实战》这本书,你将能够熟练掌握iBatis的配置、使用和优化技巧,提升你在实际项目中的开发效率,实现更加高效、灵活的数据访问控制。
这种组合在企业级Java应用中非常常见,因为Spring提供了强大的应用管理和控制层,而iBatis则在数据访问层提供了灵活的SQL映射功能。 在【压缩包子文件的文件名称列表】中,我们看到一个名为"springmvc"的条目,这很...
今天,我们将基于“ibatis.rar”这个压缩包文件,深入探讨iBatis的核心概念、主要功能以及实际应用中的关键技巧。 一、iBatis概述 iBatis,由Clinton Begin创建,最初是作为ApacheJakarta项目的一部分,后来独立...