初识ibatis

1.ibatis是一种半自动化的应用于持久化层的开发框架,是apache的一个开源项目,它支持java和.net开发。其半自动化的含义是:它是针对hibernate的全自动化的模式而言的,它不会自动生成和执行sql,而需要程序员去手动开发sql。

2.ibatis与hibernate的区别:ibatis是半自动化的,它是与sql语句形成映射;bibernate是全自动化的,它是与数据库表形成映射。

3.xml映射文件中的>大于号和<小于号要写成&gt和&lt,如果使用<![CDATA[]]>的话不需要转换,但是使用<![CDATA[]>不会对其内部的xml标签进行解析,如<dynamic></dynamic>(当传入的参数为空时,防止sql报错)。

4.sql和include标签配合使用,可以灵活使用sql语块,如:

 1 <sql id="selectBasicSql">   
 2  select  samplingTimestamp,onlineNum,year,month,week,day,hour from    
 3  OnlineMemberNum  
 4 </sql>    
 5  <sql id="whereSqlBefore">    
 6  where samplingTimestamp &lt;= #samplingTimestamp#   
 7  </sql>    
 8  <select id="com.fashionfree.accesslog.selectOnlineMemberNumsBeforeSamplingTimestamp" parameterClass="hashmap" resultClass="OnlineMemberNum">    
 9 <include refid="selectBasicSql" />    
10 <include refid="whereSqlBefore" />    
11 </select>

5.iterate标签是一个遍历标签,一般用于传入List的情况。

  <delete id="deletePerson" parameterClass="java.util.List">
    delete from 表名 where      sex=#sex#         
        <iterate prepend="and" property="personList" open="("
          close=")" conjunction="or">
          age=#[].age#
        </iterate> 
  </delete>

输出sql如下:
delete from 表名 where sex='man' and (age =11 or age=12)  注意List中存的是11和12

6.sysdate是oracle中的当前时间

7.$与#的区别:#将之解析为它所代表的字符串值,$则进行字符串拼接,一般会将字符串的引号去掉,如$id$最终结果为id

8.isNull,isEmpty,isEqual等标签是条件标签,意为如果...则查询条件有效,如:isNull意思是如果参数为null则查询条件有效。

<isNotEmpty prepend="and" property="isSuccess">
 <![CDATA[ is_success = #isSuccess# ]]>
</isNotEmpty>

上段代码的意思是如果传入的参数isSuccess不为null或“”则查询有效,执行当中的sql语句,否则省略。

        

转载于:https://www.cnblogs.com/gfs-windy/p/3881280.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值