mybatis-SQL语句

一、驼峰映射,写在mybits配置文件中

<setting name="mapUnderscoreToCamelCase" value="true"/>

二、别名

 //查询
    @Select("select id, username, password, name, gender, image, job, entrydate as ed, dept_id, create_time, update_time from emp")
    List<Emp> findAll2();

三、自定义映射

//查询
@Results({//@Results: 自定义结果映射
    @Result(column = "entrydate", property = "ed"),//@Result一条映射规则 (column = "数据表中字段名", property = "实体类属性名")
    @Result(column = "dept_id", property = "deptId")
})	
    @Select("select * from emp")
    List<Emp> findAll3();

四、模糊查询

where name like concat('%',#{name},'%')

五、动态SQL

<!--
    字符串需要跟null和空串比较
    其他类型只要跟null比较

    if:使用test进行条件判断,只有条件成立,条件中的sql才会生效
    where:只会在<where>标签内部有内容的情况下才插入where子句,而且会自动去除子句的开头的AND或OR。
-->
<select id="findByCondition" resultType="com.itheima.domain.Emp">
    select * from emp
    <where>
        <if test="name != null and name != ''">
            name like concat('%',#{name},'%')
        </if>
        <if test="gender != null">
            and gender = #{gender}
        </if>
        <if test="begin != null and end != null">
            and entrydate between #{begin} and #{end}
        </if>
    </where>
</select>
<update id="update">
    update emp
    <set>
          <if test="username != null and username != ''">
            username = #{username},
        </if>
        <if test="password != null and password != ''">
            password = #{password},
        </if>
        <if test="name != null and name != ''">
            name = #{name},
        </if>
        <if test="gender != null">
            gender = #{gender},
        </if>
        <if test="image != null and image != ''">
            image = #{image},
        </if>
        <if test="job != null">
            job = #{job},
        </if>
        <if test="ed != null">
            entrydate = #{ed},
        </if>
        <if test="deptId != null">
            dept_id = #{deptId},
        </if>
        <if test="createTime != null">
            create_time = #{createTime},
        </if>
        <if test="updateTime != null">
            update_time = #{updateTime},
        </if>
    </set>
    where id = #{id}
</update>
* collection:集合名称
* item:集合遍历出来的元素
* separator:每一次遍历使用的分隔符
* open: 遍历开始前拼接的片段
* close:遍历结束后拼接的片段

  <delete id="deleteByIds">
      delete from emp where id in
      <foreach collection="ids" item="id" separator="," open="(" close=")">
          #{id}
      </foreach>
  </delete>

可能用到Arrays.asList()方法。

六、SQL片段

* 定义SQL片段:  <sql id="selectUser"></sql> 
* 引用SQL片段:  <include refid="selectUser"></include> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-Plus是一个基于Mybatis的增强工具,它简化了Mybatis的使用方式,提供了更加易用的API和更强大的功能。在使用Mybatis-Plus编写SQL语句时,我们可以进行一些优化来提高性能和效率。 首先,可以通过使用合适的索引来优化SQL语句。索引可以加快查询速度,减少数据库的查询时间。需要注意的是,在创建索引时,要根据实际场景和查询需求选择适当的列进行索引,避免过多或冗余的索引。 其次,可以使用合适的分页查询方式进行优化。在查询大量数据时,可以通过分页查询的方式减少返回的数据量,提高查询效率。Mybatis-Plus提供了PageHelper插件,可以方便地进行分页查询。 另外,可以通过合理的SQL语句编写和设计来优化查询性能。避免在查询语句中使用通配符进行模糊查询,因为模糊查询会增加数据库的查询负担。如果查询条件中的某个字段有固定的值,可以将其写为精确查询条件,而不是使用模糊查询。 此外,还可以对需要查询的字段进行筛选,只选择需要的字段,避免返回多余的数据,减少网络传输和查询时间。 最后,为了避免SQL注入攻击,需要使用参数绑定的方式传递参数,而不是直接拼接参数到SQL语句中。这样可以避免特殊字符对SQL语句的破坏和安全问题。 总之,通过合理使用Mybatis-Plus提供的功能和技巧,我们可以对SQL语句进行优化,提高查询性能和效率。同时,还需要根据具体业务场景和需求进行调整和优化,持续改进和优化SQL语句的编写方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值