`

ibatis 3 学习笔记 5

阅读更多
原创  ibatis 3 学习笔记 5 收藏

动态sql语句

可以在xml文件中添加条件配置来动态拼接,调用sql语句
ibatis使用的ONGL表达式有四种元素
if
choose
trim
foreach

if

<select id=”findActiveBlogLike”
parameterType=”Blog” resultType=”Blog”>
SELECT * FROM BLOG WHERE state = ‘ACTIVE’
<if test=”title != null”>
AND title like #{title}
if>
<if test=”author != null && author.name != null”>
AND title like #{author.name}
if>
select>


choose,when,otherwise

<select id=”findActiveBlogLike”
parameterType=”Blog” resultType=”Blog”>
    SELECT * FROM BLOG WHERE state = ‘ACTIVE’
    <choose>
        <when test=”title != null”>
            AND title like #{title}
        when>
        <when test=”author != null && author.name != null”>
            AND title like #{author.name}
        when>
        <otherwise>
            AND featured = 1
        otherwise>
    choose>
select>


trim,where,set

where标签可以动态加上where关键字:
<select id=”findActiveBlogLike”
parameterType=”Blog” resultType=”Blog”>
    SELECT * FROM BLOG
    <where>
        <if test=”state != null”>
            state = #{state}
        if>
        <if test=”title != null”>
            AND title like #{title}
        if>
        <if test=”author != null && author.name != null”>
            AND title like #{author.name}
        if>
    where>
select>


这里也可以自定义trim元素来控制where等关键字,下面的trim配置等价于where标签
<trim prefix="WHERE" prefixOverrides="AND |OR ">
…
trim>


这里trim标签文档上叙述的很模糊,大概意思是如果trim内的字符带有前缀“AND ”或者“OR ”那么去掉trim整段字符前面的where,否则添加where。

来看update语句中:

<update id="updateAuthorIfNecessary"
parameterType="domain.blog.Author">
update Author
<set>
<if test="username != null">username=#{username},if>
<if test="password != null">password=#{password},if>
<if test="email != null">email=#{email},if>
<if test="bio != null">bio=#{bio}if>
set>
where id=#{id}
update>

set标签等价的trim标签配置为

<trim prefix="SET" suffixOverrides=",">
…
trim>


这里的trim标签原文叙述的很模糊,大概意思是trim中的字符带有后缀,的话那么就去掉trim整段字符前的set,否则添加set

foreach

<select id="selectPostIn" resultType="domain.blog.Post">
SELECT *
FROM POST P
WHERE ID in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
foreach>
select>


基本能明白foreach标签的作用了:
item说明了集合内每一个元素的值,并在下面的sql中使用#{item} 来引用这个值
index说明了集合内每一个元素的下标,并在下面的sql中使用#{index} 来引用这个值
collection说明了集合元素的类型
open是指转换后前面添加(
separator表示每个集合元素之间以“,”分隔
close在转换后最后添加)。
分享到:
评论

相关推荐

    iBatis2学习笔记

    3.iBatis2学习笔记:单表映射 .doc 4.iBatis2学习笔记:SqlMap的配置总结(18条).doc 5.iBatis2学习笔记:入参和返回值的问题.doc 6.iBatis2学习笔记:一对多映射(双向).doc 7.iBatis2学习笔记:多对多映射(双向)...

    ibatis学习笔记

    ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记

    IBatis学习笔记以及使用心得

    IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得

    ibatis教程学习笔记

    ### ibatis教程学习笔记 #### 一、ibatis简介与特点 ibatis 是一个基于 Java 的持久层框架,它提供了一种将 SQL 映射到 Java 对象的方式,简化了 JDBC 的复杂操作。ibatis 通过 XML 配置文件或者注解的形式来描述 ...

    Ibatis的学习笔记

    Ibatis 是一款轻量级的Java持久层框架,它与Hibernate等ORM框架不同,Ibatis 提供了更加灵活的SQL映射机制,允许开发者直接编写自定义的SQL语句,而不像Hibernate那样进行全封装。这种设计使得Ibatis在处理复杂的SQL...

    ibatis 学习笔记

    3. 更新操作时返回受影响的行数,查询操作时返回单个对象或对象集合。 **Data Access Objects (DAO)** 是一个通用API层,封装了实体操作的细节,提供简单接口来操作数据,使得应用程序可以灵活地切换不同的数据存储...

    ibatis-3-学习笔记.docx

    iBatis 3 学习笔记 iBatis 是一个基于 Java 的持久层框架,主要用于数据库交互。下面是 iBatis 3 的学习笔记,包括环境配置、Mapper 文件配置、POJO 类设计等内容。 一、环境配置 要使用 iBatis 3,需要在项目中...

    ibatis学习笔记.txt

    ### iBatis 学习笔记知识点总结 #### 一、iBatis 概念与特点 **1.1 iBatis 定义** - **iBatis** 是一个基于 Java 的开源持久层框架,它专注于 SQL 映射,提供了一种将对象与数据库交互过程中的 SQL 语句进行分离的...

    spring3学习笔记(2)-集成ibatis3进行单元测试

    在本篇“Spring3学习笔记(2)-集成ibatis3进行单元测试”中,我们将深入探讨如何在Spring3框架中整合Ibatis3,并利用它来进行单元测试。这个主题对于理解如何在实际项目中实现数据访问层的测试具有重要意义。在现代...

    持久层框架ibatis学习笔记

    通过本文的学习笔记,我们可以了解到 iBatis 在简化数据库访问的同时提供了足够的灵活性。尽管 iBatis 相比 Hibernate 在自动化程度上略显不足,但对于需要高度定制 SQL 查询的场景来说,iBatis 的优势十分明显。...

    ibatis学习笔记(一)

    这篇“ibatis学习笔记(一)”可能是博主对Ibatis基础概念、安装配置以及基本使用的介绍,让我们通过标签“源码”和“工具”来深入探讨Ibatis的相关知识。 首先,Ibatis是一个轻量级的Java ORM(对象关系映射)框架...

    Ibatis学习笔记,文档,资源6合1

    这个压缩包集合了Ibatis的学习笔记、文档和相关资源,为想要深入理解和掌握Ibatis的人提供了一站式的自学材料。 Ibatis的核心概念是SQL Mapping,它允许开发者将SQL语句直接写在XML配置文件中,或者使用注解方式,...

    Ibatis 练习Demo和笔记

    在提供的压缩包中,"Ibatis 学习笔记.docx"可能是对以上知识点的详细文档,包含了学习过程中的总结和例子,适合阅读理解。而"IbatisStudy"可能是一个示例项目,包含了一个简单的Ibatis应用场景,如用户管理模块,...

    ibatis学习资料及个人学习笔记,对初学者很有用

    【ibatis学习资料及个人学习笔记】 Ibatis,作为一个轻量级的持久层框架,它在Java开发领域中占有重要地位。本资料包是针对Ibatis的学习资源集合,旨在帮助初学者快速掌握这一强大的数据库操作工具。Ibatis的核心...

    IBATIS学习笔记

    ### IBATIS学习笔记知识点详解 #### 一、IBATIS简介 iBatis是一个用于Java的数据持久化框架,类似于Hibernate、JDO和EJB等技术。它的主要特点是将对象映射为SQL语句,这使得开发人员可以更加灵活地控制SQL的执行,...

Global site tag (gtag.js) - Google Analytics