`

ibatis常见技巧

阅读更多
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常见案例

    以上就是Ibatis在实际项目中的一些常见使用案例,通过这些技巧,我们可以更高效地进行数据操作,减少编码工作量,提高代码的可读性和维护性。理解并熟练运用这些案例,将有助于提升你在Java持久层开发中的技能。

    IBATIS_IN_ACTION

    - **最佳实践**:总结iBATIS使用过程中的常见问题及解决策略,分享成功经验。 - **综合应用**:通过实例演示iBATIS在复杂项目中的集成与应用,帮助读者将理论知识转化为实践能力。 ### iBATIS.NET QuickStart 除了...

    ibatis

    - 故障排查技巧,如日志配置和常见错误分析。 总的来说,这个压缩包提供了一个全面学习iBATIS的资源库,适合对Java Web开发有兴趣,特别是想深入了解iBATIS的开发者。结合理论与实践,通过阅读和动手操作,可以深入...

    ibatis2.rar

    iBATIS和Spring的集成是企业级应用开发中常见的组合,因为Spring提供了全面的依赖注入和事务管理,而iBATIS则擅长于SQL映射。集成过程通常包括以下几个步骤: 1. 引入相关库:添加iBATIS和Spring的jar包到项目类路径...

    iBatis文档

    此外,还可能包含各种使用技巧、最佳实践以及常见问题的解决方案。 在iBatis 2.0中,SqlMapConfig.xml是整个系统的配置中心,它包含了数据源、事务管理器、SqlMapClient的配置。SqlMap元素则是具体数据库操作的定义...

    ibatis出错调试心得

    本文将根据所提供的标题、描述及部分内容,详细阐述在使用iBatis时可能遇到的一些常见错误及其调试技巧。 ### 一、SQL映射文件(sqlMap)中的配置问题 #### 1. **SQL映射文件的正确配置** - **插入语句示例**:当...

    操作数据库 iBATIS查询

    #### 一、iBATIS中的LIKE查询技巧 iBATIS是一款优秀的Java持久层框架,它简化了基于SQL的程序编写,避免了程序员手动处理结果集和手工编写SQL语句。在进行数据库查询时,LIKE查询是一种常见的需求,特别是在搜索...

    ibatis sql 语句的编写

    通过本文的学习,我们了解了ibatis的基本使用方法,包括如何编写各种类型的SQL语句,并掌握了动态SQL的相关技巧。这些知识对于初学者来说是非常有用的,能够帮助他们在实际项目中更加灵活地处理数据库操作问题。随着...

    ibatis2小例子(转)

    描述虽然为空,但根据标题和标签,我们可以推测博主可能在博文中分享了他们对iBatis2的理解和应用经验,可能包括了一些实用技巧或常见问题的解决方案。 标签 "源码" 和 "工具" 提示我们,内容可能包含了源代码示例...

    iBATIS实战

    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的核心概念、配置方式以及在实际开发中的应用技巧。 【描述】:“iBatis.rar 学习手册学习手册学习手册各种讲解” 这是一份详尽的iBatis学习资源,包含多方面的讲解,旨在帮助读者全面...

    ibatis例子加教程&java&javascript&dhtml&正则表达式工具

    这种技术在网页设计中非常常见,提高了用户体验,但需要注意浏览器兼容性问题。 5. 正则表达式: 正则表达式(Regular Expression)是一种用于模式匹配的字符串处理工具。它用于在文本中查找、替换或提取符合特定...

    iBatis教程中文版

    通过以上介绍,我们可以看到iBatis不仅提供了一种简单的方法来执行常见的数据库操作(如增删改查),而且还支持更复杂的映射和存储过程功能。这对于需要高性能且灵活性的应用程序来说是非常有价值的。

    iBATIS初学经验.doc

    本文将基于作者的初学经验,分享iBATIS的一些核心概念、使用技巧以及学习过程中的常见问题。 首先,理解iBATIS的基本理念至关重要。它是一个基于Java的数据库访问框架,旨在解决对象关系映射(ORM)的问题,使得...

    Manning Ibatis In Action Jan 2007 Ebook-Bbl.pdf

    - **iBATIS best practices (iBATIS最佳实践)**: 第十三章总结了一系列使用iBATIS时的最佳实践,这些实践可以帮助开发者避免常见的陷阱,并提高代码的质量和可维护性。 ### 十二、综合应用案例 - **Putting it all...

    ibatis实战

    《iBatis实战》这本书是针对Java开发人员深入理解并应用iBatis...通过阅读《iBatis实战》这本书,你将能够熟练掌握iBatis的配置、使用和优化技巧,提升你在实际项目中的开发效率,实现更加高效、灵活的数据访问控制。

    spring\ibatis样例工程

    这种组合在企业级Java应用中非常常见,因为Spring提供了强大的应用管理和控制层,而iBatis则在数据访问层提供了灵活的SQL映射功能。 在【压缩包子文件的文件名称列表】中,我们看到一个名为"springmvc"的条目,这很...

    ibatis.rar

    今天,我们将基于“ibatis.rar”这个压缩包文件,深入探讨iBatis的核心概念、主要功能以及实际应用中的关键技巧。 一、iBatis概述 iBatis,由Clinton Begin创建,最初是作为ApacheJakarta项目的一部分,后来独立...

Global site tag (gtag.js) - Google Analytics