【荐】Mybatis实战心得

--------mybatis--------
<!--动态SQL语句,多条件查询-->
   <select id="findSomeByMore" resultType="userInfoModel" parameterType="hashmap">     select * from userinfo -- (where标签自动去掉满足条件的第一个and) <where>
<if test="userName!=null">
    and username=#{userName} </if>
 <if test="gender != null">
    and gender=#{gender} </if>
 <if test="orderId != null">
    and id in (select userid from orders where id=#{orderId}) </if> </where> </select>

 


-------防止<>被解析器解析

在 XML 元素中,"<" 和 "&" 是非法的。
"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:
<if test="startTime != null ">
    AND <![CDATA[ order_date >= #{startTime,jdbcType=DATE}  ]]>
</if>
<if test="endTime != null ">
    AND <![CDATA[ order_date <= #{endTime,jdbcType=DATE}  ]]>
</if>
不等于<>,在mybatis中需要转义 用<![CDATA[<]]> 分别对大于和小于转义

----------------模糊查询-------------
mybatis中对于使用like来进行模糊查询的几种方式:
1.使用${...}
由于$是参数直接注入的,导致这种写法,大括号里面不能注明jdbcType,不然会报错    

2.使用#{...}
因为#{...}解析成sql语句时候,会在变量外侧自动加单引号'  ',所以这里 % 需要使用双引号"  ",不能使用单引号 '  ',不然会查不到任何结果。

3.使用CONCAT()函数连接参数形式

---------------多表关联查询-----------
注意所连接的表的查询条件不能放到where中,如果放到where语句中则不起任何的作用。红色的部分

----------一对一-----------
association通常用来映射一对一的关系
<association property="article" column="id"                       
            select="test.mybatis.dao.articleMapper.selectArticleByUserId" />//test.mybatis.dao.articleMapper为命名空间

-------------一对多---------------
一对多,collection
<collection property="articleList" column="id"                       
            select="test.mybatis.dao.articleMapper.selectArticleListByUserId" />

--------------------resultType------------------
 <!--
        指定 resultType 返回值类型时 String 类型的,
        string 在这里是一个别名,代表的是 java.lang.String

        对于引用数据类型,都是将大写字母转小写,比如 HashMap 对应的别名是 'hashmap'
        基本数据类型考虑到重复的问题,会在其前面加上 '_',比如 byte 对应的别名是 '_byte'
    --> <select id="getEmpNameById" resultType="string"> select username from t_employee where id = #{id} </select>

-----------------返回为Map类型  解决为null字段不返回--------------
注意 mybatis-config.xml中各标签的顺序
    <settings>
        <setting name="callSettersOnNulls" value="true"/>
    </settings>

 

注:会陆续补充,谢谢

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值