6.1 MyBatis基础

这篇具有很好参考价值的文章主要介绍了6.1 MyBatis基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.MyBatis概述

MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis,2013年11月MyBatis又被迁移到Github。

MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录,使得Java开发人员可以使用面向对象的编程思想来操作数据库。

2.MyBatis工作原理

MyBatis框架是一个ORM(Object/Relation Mapping,即对象关系映射)框架。所谓的ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。

使用ORM框架后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象,ORM框架会通过映射关系将这些面向对象的操作转换成底层的SQL操作,ORM框架的工作原理如下图所示。

6.1 MyBatis基础,SpringBoot入门实战,spring,spring boot,mybatis

3.MyBatis与JDBC对比

JDBC

MyBatis

SQL与代码耦合度高
代码冗长、开发效率低

SQL与代码耦合度高
代码冗长、开发效率低

4.常用配置元素

MyBatis映射文件中的常用元素有<mapper>、<insert>、<delete>、<update>、<select>、<resultMap>、<sql>等。

属性

说明

<mapper>

映射文件的根元素,该元素只有一个namespace属性(命名空间)。

<select>

用于映射查询语句。

<insert>

用于映射插入语句。

<delete>

用于映射删除语句。

<update>

用于映射更新语句。

<resultMap>

描述数据库结果集和对象的对应关系。

<sql>

可以重用的SQL块,也可以被其他语句使用。

<select>元素

<select>元素用来映射查询语句,它可以从数据库中查询数据并返回。使用<select>元素执行查询操作示例代码如下:

<!--查询单个学生信息-->
<select id="queryStudent" parameterType="java.lang.String" resultType="com.wfit.boot.model.Student">
    select *
    from t_student
    where id = #{id}
</select>
  • id,表示命名空间中<select>元素的唯一标识,通过该标识可以调用这条查询语句。

  • parameterType ,它是一个可选属性,用于指定SQL语句所需参数类的全限定名或者别名,其默认值是unset。

  • resultType,用于指定执行这条SQL语句返回的全限定类名或别名。

<insert>元素

<insert>元素用于映射插入语句,在执行完<insert>元素中定义的SQL语句后,会返回插入记录的数量。使用< insert >元素执行插入操作示例代码如下:

<!--新增学生信息-->
<insert id="saveStudent" parameterType="com.wfit.boot.model.Student">
insert into t_student values(
            #{id},
            #{name},
            #{age},
            #{sex},
            #{birthday},
            #{idCard},
            #{phone}
    )
</insert>

<update>元素

<update>元素用于映射更新语句,它可以更新数据库中的数据。在执行完元素中定义的SQL语句后,会返回更新的记录数量。使用<update>元素执行更新操作示例代码如下:

<!--修改学生信息-->
<update id="updateStudent" parameterType="com.wfit.boot.model.Student">
    update t_student
    set name = #{name},age = #{age}
    where id = #{id}
</update>

<delete>元素

<delete>元素用于映射删除语句,在执行完<delete>元素中的SQL语句之后,会返回删除的记录数量。使用<delete>元素执行删除操作示例代码如下所示:

<!--删除学生信息-->
<delete id="delStudent" parameterType="java.lang.String">
    delete from t_student where id = #{id}
</delete>

5.动态SQL

在实际项目的开发中,开发人员在使用JDBC或其他持久层框架进行开发时,经常需要根据不同的条件拼接SQL语句,拼接SQL语句时还要确保不能遗漏必要的空格、标点符号等,这种编程方式给开发人员带来了非常大的不便,而MyBatis提供的SQL语句动态组装功能,恰能很好地解决这一问题。

动态SQL常用元素<if>、<choose>(<when>、<otherwise>)、<where>、<trim>、<set>、<foreach>等。

属性

说明

<if>

判断语句,用于单条件判断

<choose>(<when>、<otherwise>)

相当于Java中的switch...case...default语句,用于多条件判断

<where>

简化SQL语句中where的条件判断

<trim>

可以灵活地去除多余的关键字

<set>

用于SQL语句的动态更新

<foreach>

循环语句,常用于in语句等列举条件中

<if>元素

在MyBatis中,<if>元素是最常用的判断元素,它类似于Java中的if语句,主要用于实现某些简单的条件判断。

<!--查询学生列表-->
<select id="queryStudent" resultType="Student" parameterType="java.util.Map">
    select *
    from t_student
    where 1 = 1
    <if test='name != null and name != ""'>
        and name like CONCAT('%',#{name},'%')
    </if>
    <if test='idCard != null and idCard != ""'>
        and idcard like CONCAT('%',#{idCard},'%')
    </if>
</select>

<set>元素

<set>元素主要用于更新操作,它可以在动态SQL语句前输出一个set关键字,并将SQL语句中最后一个多余的逗号去除。<set>元素与<if>元素结合可以只更新需要更新的字段。文章来源地址https://www.toymoban.com/news/detail-652363.html

<!-- 修改学生信息 -->
<update id="updateStudent" parameterType="java.util.Map">
    update t_student
    <set>
        <if test='name != null and name != ""'>
            name = #{name},
        </if>
        <if test='idCard != null and idCard != ""'>
            idcard = #{idCard},
        </if>
    </set>
    where id = #{id}
</update>

到了这里,关于6.1 MyBatis基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot入门(14):使用Mybatis-Plus轻松实现高效自定义SQL操作!

            在上几期,我们既讲了如何整合Mybatis-Plus进行数据库的增删改查,也讲解了如何使用MP的 Wrapper 构造器,但若是遇到复杂业务逻辑,如多表联查、动态拼接条件等,这些操作往往会让代码变得冗长且难以维护。但是,有了Mybatis-Plus这个优秀的框架,我们可以轻松实现

    2024年02月10日
    浏览(44)
  • Spring Boot入门(14):使用Mybatis-Plus执行自定义SQL | 超级详细,建议收藏

            在上几期,我们既讲了如何整合Mybatis-Plus进行数据库的增删改查,也讲解了如何使用MP的 Wrapper 构造器,但若是遇到复杂业务逻辑,如多表联查、动态拼接条件等,这些操作往往会让代码变得冗长且难以维护。但是,有了Mybatis-Plus这个优秀的框架,我们可以轻松实现

    2024年02月12日
    浏览(35)
  • Spring Boot入门(09):如何使用MyBatis的XML配置方式实现MySQL的增删改查操作?

            想要快速高效地开发Java Web应用程序,选择使用Spring Boot和MyBatis无疑是明智之举。本篇文章将教你使用MyBatis的XML配置方式,结合MySQL数据库,实现常见的增删改查操作,让你的应用程序更加实用和强大。跟随本文一起来探索MyBatis在Spring Boot中的力量吧!        

    2024年02月11日
    浏览(70)
  • 基于Spring boot和Mybatis外卖项目瑞吉外卖Day9-Redis的快速入门

    4.1 Redis数据结构介绍 Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样: 贴心小建议:命令不要死记,学会查询就好啦 Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( https://redis.io/commands )可以查看到不同的命令: 当然我们

    2023年04月09日
    浏览(52)
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring搭建框架步骤

    第一章 初识Spring 1.1 Spring简介 Spring是一个为简化企业级开发而生的 开源框架 。 Spring是一个 IOC(DI) 和 AOP 容器框架。 IOC全称:Inversion of Control【控制反转】 将对象【万物皆对象】控制权交个Spring DI全称:(Dependency Injection):依赖注入 AOP全称:Aspect-Oriented Programming,面向切面编

    2024年02月04日
    浏览(49)
  • Spring Boot入门(09):使用MyBatis的XML配置方式访问MySQL实现增删改查 | 超级详细,建议收藏

            想要快速高效地开发Java Web应用程序,选择使用Spring Boot和MyBatis无疑是明智之举。本篇文章将教你使用MyBatis的XML配置方式,结合MySQL数据库,实现常见的增删改查操作,让你的应用程序更加实用和强大。跟随本文一起来探索MyBatis在Spring Boot中的力量吧!        

    2024年02月13日
    浏览(46)
  • Spring Boot入门(10):Mybatis之XML映射文件中如何使用特殊符号?揭秘<、<=等符号的正确使用方法!

            在Mybatis的XML映射文件中,我们经常需要使用一些特殊符号来完成SQL语句的拼接,比如小于号“”、小于等于号“=”等。然而,由于这些符号在XML中有特殊的含义,因此直接在映射文件中使用可能会导致编译错误或者运行时异常。那么,如何才能正确地使用这些特殊

    2024年02月09日
    浏览(49)
  • 【Spring Boot+Thymeleaf+MyBatis+mysql】实现电子商务平台实战(附源码)持续更新~~ 包括sql语句、java、html代码

    源码请点赞关注收藏后评论区留言和私信博主 开发环境:Web服务器使用Servlet容器,数据库采用mysql,集成开发环境为Spring Tool Suite(STS) 电子商务平台分为两个子系统 一个是后台管理系统 一个是电子商务系统,下面分别讲解着两个子系统的功能需要与模块划分 1:后台管理子

    2024年02月09日
    浏览(46)
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven使用前准备

    一.Maven准备 注意:IDEA2019.1.x 最高支持Maven的3.6.0 下载地址:http://maven.apache.org/ Maven底层使用Java语言编写的,所以需要配置JAVA_HOME环境变量及Path 将Maven解压 非中文无空格 目录下 配置 MAVEN_HOME 环境变量及 Path 新建系统变量MAVEN_HOME,添加变量值maven根目录 编辑系统变量Path,添

    2024年02月09日
    浏览(49)
  • 【Spring Boot】数据库持久层框架MyBatis — Spring Boot构建MyBatis应用程序

    Spring Boot是用于快速构建Spring应用程序的框架。MyBatis是一种Java持久化框架,可以帮助开发人员轻松地管理数据库。将Spring Boot与MyBatis结合使用可以使开发人员更容易地创建和管理数据库应用程序。 以下是使用Spring Boot构建MyBatis应用程序的步骤: 添加MyBatis依赖项:在项目的

    2024年02月10日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包